Evgeniy Stepanov
d17b061eed
[msan] Use new -fsanitize-memory-track-origins= flag in MSan tests.
...
llvm-svn: 204347
2014-03-20 15:00:39 +00:00
Alexander Potapenko
d23359c3e3
[libsanitizer] Implement IntrusiveList<T>::Iterator, use IntrusiveList in sanitizer_flags.cc
...
llvm-svn: 204342
2014-03-20 13:49:21 +00:00
Dmitry Vyukov
454abc0093
tsan: deflake test
...
llvm-svn: 204340
2014-03-20 13:27:11 +00:00
Alexander Potapenko
1296436cbf
[libsanitizer] Introduce flag descriptions.
...
Extend ParseFlag to accept the |description| parameter, add dummy values for all existing flags.
As the flags are parsed their descriptions are stored in a global linked list.
The tool can later call __sanitizer::PrintFlagDescriptions() to dump all the flag names and their descriptions.
Add the 'help' flag and make ASan, TSan and MSan print the flags if 'help' is set to 1.
llvm-svn: 204339
2014-03-20 12:52:52 +00:00
Dmitry Vyukov
d3466b9e5e
tsan: remove unused function declarations
...
llvm-svn: 204328
2014-03-20 10:39:46 +00:00
Dmitry Vyukov
c9e12aa323
tsan: deobfuscate global ctx variable
...
llvm-svn: 204327
2014-03-20 10:36:20 +00:00
Dmitry Vyukov
6e2557769c
tsan: use stack depot for goroutine creation stacks (as C++ threads do)
...
llvm-svn: 204326
2014-03-20 10:19:02 +00:00
Dmitry Vyukov
9cf08c46a6
tsan: remove unused declaration
...
llvm-svn: 204324
2014-03-20 10:13:30 +00:00
Alexey Samsonov
6c3f7fcb8a
Mark this test as 64-bit specific
...
llvm-svn: 204319
2014-03-20 07:37:45 +00:00
Duncan P. N. Exon Smith
ecf2256dfe
PGO: Implement Darwin linker magic for instrumentation
...
Use Darwin linker magic to find bounds of instrumentation data sections
at link time instead of runtime.
<rdar://problem/15943240>
llvm-svn: 204302
2014-03-20 03:57:33 +00:00
Duncan P. N. Exon Smith
da0de8a237
PGO: Split out initialization of section bounds
...
Currently we register instrumentation data at runtime to determine the
bounds of the sections where the data lives. Soon we'll implement
platform-specific linker magic to determine this at link time.
Move this logic to a separate file, so that our build system can choose
the correct platform-specific code.
No functionality change intended.
<rdar://problem/15943240>
llvm-svn: 204299
2014-03-20 03:23:10 +00:00
Duncan P. N. Exon Smith
a84dae2c2c
PGO: Constify references to instrumentation data
...
<rdar://problem/15943240>
llvm-svn: 204298
2014-03-20 03:19:15 +00:00
Duncan P. N. Exon Smith
d1a3bebeeb
PGO: Use past-the-end semantics for pointer range
...
llvm-svn: 204278
2014-03-19 22:45:28 +00:00
Duncan P. N. Exon Smith
fb4447688f
PGO: Appease buildbots after r204268
...
llvm-svn: 204276
2014-03-19 22:28:32 +00:00
Duncan P. N. Exon Smith
8353a26e85
PGO: Splitting implementation files; no functionality change
...
Split implementation files along a uses-libc/shouldn't-use-libc
boundary.
- InstrProfiling.h is a shared header.
- InstrProfiling.c provides an API to extract profiling data from the
runtime, but avoids the use of libc. Currently this is a lie:
__llvm_pgo_write_buffer() uses `FILE*` and related functions. It
will be updated soon to write to a `char*` buffer instead.
- InstrProfilingExtras.c provides a more convenient API for
interfacing with the profiling runtime, but has logic that does (and
will continue to) use libc.
<rdar://problem/15943240>
llvm-svn: 204268
2014-03-19 22:10:27 +00:00
Duncan P. N. Exon Smith
61c97335c6
PGO: Fix obviously wrong typedefs for MS
...
llvm-svn: 204267
2014-03-19 22:10:24 +00:00
Joerg Sonnenberger
0883e48f7e
Sort. Fix missing NetBSD.
...
llvm-svn: 204249
2014-03-19 16:06:36 +00:00
Alexey Samsonov
a7b8472397
One more attempt to fix Makefile build
...
llvm-svn: 204241
2014-03-19 15:26:54 +00:00
Dmitry Vyukov
1af191e1f4
tsan: add test for second_deadlock_stack flag
...
llvm-svn: 204240
2014-03-19 15:00:38 +00:00
Alexey Samsonov
725122eca3
[Make] Build sanitizer runtimes with -std=c++11
...
llvm-svn: 204239
2014-03-19 14:50:10 +00:00
Alexey Samsonov
a2fdd8e253
[CMake] Fix build of ASan tests on Mac
...
llvm-svn: 204238
2014-03-19 14:45:40 +00:00
Kostya Serebryany
78f2e7bd62
[sanitizer] use some c++11 to simplify the code (we can now). Fix one place where a mutex acquisition stack trace was not properly remembered
...
llvm-svn: 204237
2014-03-19 14:19:31 +00:00
Alexey Samsonov
17703c1092
[CMake] Build sanitizer unit tests with -std=c++11
...
llvm-svn: 204234
2014-03-19 13:57:33 +00:00
Kostya Serebryany
2483acce21
[sanitizer] when recycling deadlock graph nodes, properly recycle edges
...
llvm-svn: 204233
2014-03-19 13:53:37 +00:00
Dmitry Vyukov
cc579aeba6
tsan: use attribute instead of compiler flag for tls-model=initial-exec as asked in comments for r203111
...
llvm-svn: 204232
2014-03-19 13:24:52 +00:00
Dmitry Vyukov
ecc3456fd6
tsan: fix copy-pasted comment
...
llvm-svn: 204231
2014-03-19 13:19:39 +00:00
Evgeniy Stepanov
a57750482f
[msan] Fix line numbers in test.
...
This corresponds to a fix in llvm::SplitBlockAndInsertIfThen.
llvm-svn: 204229
2014-03-19 12:56:38 +00:00
Dmitry Vyukov
bbbe6bba8a
tsan: preliminary support for Go deadlock detector
...
llvm-svn: 204228
2014-03-19 12:50:47 +00:00
Dmitry Vyukov
17efa197bf
tsan: fix large stack frame in deadlock detector
...
In member function 'virtual void __sanitizer::DD::MutexBeforeLock(__sanitizer::DDCallback*, __sanitizer::DDMutex*, bool)':
error: the frame size of 544 bytes is larger than 512 bytes [-Werror=frame-larger-than=]
The code is now [arguably] better as well.
llvm-svn: 204227
2014-03-19 12:49:46 +00:00
Kostya Serebryany
2ea796e05f
[sanitizer] deadlock detector: a) initial support for suppressions, b) be more robust in case we failed to extract a stack trace for one of the locks
...
llvm-svn: 204225
2014-03-19 12:26:33 +00:00
Timur Iskhodzhanov
364b8b8fe5
[ASan] Print mmap errno/GetLastError in a readable and consistent way
...
Reviewed at http://llvm-reviews.chandlerc.com/D3107
llvm-svn: 204218
2014-03-19 08:23:00 +00:00
Joerg Sonnenberger
4e08a634e1
Don't take short cuts trying to avoid conditionals. This leads to
...
negative shift amounts and/or shifts wider than the type. VAX traps on
the former, X86 and other platforms produce incorrect results on the
latter.
llvm-svn: 204193
2014-03-18 22:10:36 +00:00
Justin Bogner
bc9c856161
profile: Include the function hash in PGO profiles
...
llvm-svn: 204185
2014-03-18 21:57:58 +00:00
Joerg Sonnenberger
14743127b7
Use CRT_HAS_128BIT.
...
llvm-svn: 204182
2014-03-18 21:35:30 +00:00
Joerg Sonnenberger
bbc979be52
Spacing
...
llvm-svn: 204179
2014-03-18 20:41:31 +00:00
Sergey Matveev
34b26458cb
[sanitizer] Fix a bug in AdjustStackSize().
...
If the user requests OS default stack size, do not adjust it to our minimum
stack size (which is usually much less than the OS default).
llvm-svn: 204173
2014-03-18 19:48:48 +00:00
Dmitry Vyukov
c5b7c66bc3
tsan: fix malloc/munmap mismatch
...
llvm-svn: 204154
2014-03-18 14:28:17 +00:00
Evgeniy Stepanov
412d973980
[msan] Origin tracking with history, compiler-rt part.
...
Compiler-rt part of MSan implementation of advanced origin tracking,
when we record not only creation point, but all locations where
an uninitialized value was stored to memory, too.
llvm-svn: 204152
2014-03-18 13:45:19 +00:00
Dmitry Vyukov
3cd028c0b2
tsan: deadlock detector: add deadlock detector flags
...
the first flags is to enable printing of the second stack per edge
llvm-svn: 204150
2014-03-18 13:13:47 +00:00
Dmitry Vyukov
b72bc2ec9c
tsan: deadlock detector: print 2 stacks per deadlock edge
...
llvm-svn: 204149
2014-03-18 12:53:05 +00:00
Dmitry Vyukov
7fbceb2a3f
tsan: addrhashmap: fix bug with initialization of addresses in add array
...
llvm-svn: 204148
2014-03-18 12:52:11 +00:00
Dmitry Vyukov
17fff3268d
tsan: deadlock detector: add ability to ignore destruction of global mutexes
...
llvm-svn: 204146
2014-03-18 12:50:41 +00:00
Alexey Samsonov
bcce1979e3
[CMake] Build compiler-rt libraries with -std=c++11
...
llvm-svn: 204145
2014-03-18 12:49:22 +00:00
Dmitry Vyukov
9e5341d64a
tsan: lazily initialize deadlock detector runtime
...
this is necessaary because dlsym can call malloc, which can lock mutexes that we intercept
llvm-svn: 204141
2014-03-18 11:23:51 +00:00
Alexey Samsonov
f88f317d35
Fix -Werror build
...
llvm-svn: 204139
2014-03-18 11:17:01 +00:00
Evgeniy Stepanov
0b5b3295e5
Move Android ucontext.h out of third_party.
...
Google is re-licensing this code under the standard dual license of
compiler-rt.
llvm-svn: 204128
2014-03-18 08:32:14 +00:00
Dmitry Vyukov
3458425d81
tsan: support up to 1<<20 mutexes in standalone deadlock detector
...
llvm-svn: 204127
2014-03-18 08:31:11 +00:00
Dmitry Vyukov
a3b21b1d14
tsan: better addr->object hashmap
...
still experimental
llvm-svn: 204126
2014-03-18 08:30:14 +00:00
Dmitry Vyukov
24c833e1a4
tsan: add missing interceptor for embed symbolizer
...
llvm-svn: 204124
2014-03-18 08:28:39 +00:00
Dmitry Vyukov
eac8cc7a42
tsan: fix flaky test
...
llvm-svn: 204119
2014-03-18 06:37:31 +00:00