| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 252735
|
| |
|
|
|
|
|
|
| |
This patch enables building and running TSan unit tests on OS X.
Differential Revision: http://reviews.llvm.org/D14546
llvm-svn: 252731
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
On PowerPC64 Linux PTRACE_GETREGS is a #define and PT_GETREGS is not.
On other systems it's the other way round. Extend the #ifs to check for
both PTRACE_* and PT_*.
This fixes test/sanitizer_common/TestCases/Linux/ptrace.cc when msan is
enabled for PowerPC64.
Reviewers: zatrazz, kcc, eugenis, samsonov
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D14564
llvm-svn: 252730
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D14241
llvm-svn: 252729
|
| |
|
|
| |
llvm-svn: 252724
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D12318
llvm-svn: 252723
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Atomic RMW is not necessary in InitializeGuardArray.
It is supposed to run when no user code runs.
And if user code runs concurrently, then the atomic
RMW won't help anyway. So replace it with non-atomic RMW.
InitializeGuardArray takes more than 50% of time during re2 fuzzing:
real 0m47.215s
51.56% a.out a.out [.] __sanitizer_reset_coverage
6.68% a.out a.out [.] __sanitizer_cov
3.41% a.out a.out [.] __sanitizer::internal_bzero_aligned16(void*, unsigned long)
1.79% a.out a.out [.] __asan::Allocator::Allocate(unsigned long, unsigned long,
With this change:
real 0m31.661s
26.21% a.out a.out [.] sanitizer_reset_coverage
10.12% a.out a.out [.] sanitizer_cov
5.38% a.out a.out [.] __sanitizer::internal_bzero_aligned16(void*, unsigned long)
2.53% a.out a.out [.] __asan::Allocator::Allocate(unsigned long, unsigned long,
That's 33% speedup.
Reviewed in http://reviews.llvm.org/D14537
llvm-svn: 252715
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Depends on D9637
Test Plan:
Reviewers: kcc, glider, samsonov
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D9638
llvm-svn: 252696
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
On Darwin, interposed functions are prefixed with "wrap_". On Linux,
they are prefixed with "__interceptor_".
Reviewers: dvyukov, samsonov, glider, kcc, kubabrecka
Subscribers: zaks.anna, llvm-commits
Differential Revision: http://reviews.llvm.org/D14512
llvm-svn: 252695
|
| |
|
|
|
|
|
|
|
| |
It can't be built due to cxxabi missing. Will
fix later.
Differential Revision: http://reviews.llvm.org/D14559
llvm-svn: 252689
|
| |
|
|
|
|
|
|
|
|
| |
Summary:
First batch of sancov.py rewrite in C++.
Supports "-print" and "-covered_functions" commands.
Differential Revision: http://reviews.llvm.org/D14356
llvm-svn: 252683
|
| |
|
|
|
|
|
|
| |
prevents passing empty -isysroot arguments
This is a minor cleanup to the macho_embedded builtins.
llvm-svn: 252619
|
| |
|
|
|
|
|
| |
* Setting CMAKE_*_FLAGS_${BUILD_TYPE} isn't really needed since we're setting the same value everywhere
* functions sanitize variables differently from macros, darwin_add_embedded_builtin_libraries should be a macro otherwise it won't alter the variables.
llvm-svn: 252618
|
| |
|
|
| |
llvm-svn: 252575
|
| |
|
|
|
|
|
|
| |
toolchain that may not support all x86 and arm architectures.
This is at least a little better than my first attempt. We still really need a way to do compile checks without linking.
llvm-svn: 252572
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Runtime code implicitly depends on the defintions and const
values defined in LLVM proper, but currently such dependency
is made implicitly by duplicating code across two dirs. As
part of the PGO cleanup effort, there will be changes to share
common sources. This is a preparation patch to enable it (NFC).
Differential Revision: http://reviews.llvm.org/D14487
llvm-svn: 252570
|
| |
|
|
|
|
|
|
| |
the architectures before generating build targets"
This commit reverts r252525. I was not really thinking about this fix properly. This doesn't work because it relys on try_compile checks which do a full compile & link. I'm going to put in a temporary solution as an interm step until we have a way to perform compiler checks without linking.
llvm-svn: 252569
|
| |
|
|
|
|
| |
This change makes CMake match autoconf.
llvm-svn: 252547
|
| |
|
|
| |
llvm-svn: 252543
|
| |
|
|
|
|
| |
Fixing a typo.
llvm-svn: 252534
|
| |
|
|
|
|
|
|
| |
put into the fat archive.
Not making sure there are thin libraries results in some difficult to diagnose build failures. This check should make those build failures go away.
llvm-svn: 252527
|
| |
|
|
|
|
|
|
| |
architectures before generating build targets
If we don't check the compiler's capabilities we end up generating build targets that the compiler might not be able to build.
llvm-svn: 252525
|
| |
|
|
|
|
|
|
| |
This patch makes ASAN for aarch64 use the same shadow offset for all
currently supported VMAs (39 and 42 bits). The shadow offset is the
same for 39-bit (36).
llvm-svn: 252497
|
| |
|
|
| |
llvm-svn: 252468
|
| |
|
|
|
|
|
|
| |
The TSan-instrumented version of libcxx doesn't even build on OS X at this point. Let's skip it from the OS X build for now, since most of TSan functionality doesn't depend on it. This will enable `check-tsan` to be run.
Differential Revision: http://reviews.llvm.org/D14486
llvm-svn: 252455
|
| |
|
|
|
|
|
|
| |
To make them the same as the common def in InstrProfData.inc.
This is a preparation to make the runtime code to use the
template as well. NFC
llvm-svn: 252421
|
| |
|
|
|
|
|
|
| |
Several tests currently deadlock when the lit test suite is run on OS X. Let's mark them as unsupported.
Differential Revision: http://reviews.llvm.org/D14443
llvm-svn: 252402
|
| |
|
|
|
|
| |
This was broken in r248542 when I refactored this to support builtins where ${arch} didn't match the directory prefix (i.e. armv7s).
llvm-svn: 252365
|
| |
|
|
| |
llvm-svn: 252359
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch enables running lit tests on OS X:
1) Simply enable tests for Darwin (they were restricted to Linux and FreeBSD).
2) Disable using instrumented libcxx (libcxx_tsan) on Darwin.
3) On Darwin, override abort_on_error=0, otherwise all tests would generate crash logs and take much longer to process.
Differential Revision: http://reviews.llvm.org/D14439
llvm-svn: 252309
|
| |
|
|
|
|
|
|
|
|
|
| |
The current implementation does not work on darwin and can have issues with other OSes in future.
See http://reviews.llvm.org/D14427
Make it portable once and for all (minus usleep call).
Reviewed in:
http://reviews.llvm.org/D14434
llvm-svn: 252292
|
| |
|
|
|
|
|
|
| |
This patch adds `tsan_new_delete.cc` into the OS X build.
Differential Revision: http://reviews.llvm.org/D14424
llvm-svn: 252284
|
| |
|
|
|
|
|
|
| |
OS X doesn't have `pthread_yield`. Let's use `sched_yield` instead.
Differential Revision: http://reviews.llvm.org/D14428
llvm-svn: 252283
|
| |
|
|
|
|
| |
http://lab.llvm.org:8011/builders/sanitizer_x86_64-freebsd/builds/6395
llvm-svn: 252277
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of tests and __fixuint
Summary:
The following tests for 128-bit floating-point type behaved in a strange way, thought it were bugs, but seem to be mistakes in tests:
* `fixtfsi` test checked for `0x80000001` as a value returned for number less than can be represented, while `LONG_MIN` should be returned on saturation;
* `fixunstfdi` wasn't enabled for AArch64, only for PPC, but there is nothing PPC specific in that test;
* `multf3` tried to underflow multiplication by producing result with 16383 exponent, while there are still 112 bits of fraction plus implicit bit, so resultant exponent should be 16497.
Tests for some other builtins didn't exist:
* `fixtfdi`
* `fixtfti`
* `fixunstfti`
They were made by copying similar files and adjusting for wider types and adding/removing some reasonable/extra checks.
Also `__fixuint` seems to have off by one error, updated tests to catch this case.
Reviewers: rengolin, zatrazz, howard.hinnant, t.p.northover, jmolloy, enefaim
Subscribers: aemerson, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D14187
llvm-svn: 252180
|
| |
|
|
|
|
|
|
| |
Fixing `tsan_interceptors.cc`, which on OS X produces a bunch of warnings about unused constants and functions.
Differential Revision: http://reviews.llvm.org/D14381
llvm-svn: 252165
|
| |
|
|
| |
llvm-svn: 252163
|
| |
|
|
|
|
|
|
| |
On OS X, memcpy and memmove are actually aliases of the same implementation, which means the interceptor of memcpy is also invoked when memmove is called. The current implementation of the interceptor uses `internal_memcpy` to perform the actual memory operation, which can produce an incorrect result when memmove semantics are expected. Let's call `internal_memmove` instead.
Differential Revision: http://reviews.llvm.org/D14336
llvm-svn: 252162
|
| |
|
|
|
|
|
|
| |
A call to memmove is used early during new thread initialization on OS X. This patch uses the `COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED` check, similarly to how we deal with other early-used interceptors.
Differential Revision: http://reviews.llvm.org/D14377
llvm-svn: 252161
|
| |
|
|
|
|
|
|
| |
TSan has a re-implementation of `pthread_once` in its interceptor, which assumes that the `pthread_once_t *once_control` pointer is actually pointing to a "storage" which is zero-initialized and used for the atomic operations. However, that's not true on OS X, where pthread_once_t is a structure, that contains a header (with a magic value) and the actual storage follows after that. This patch skips the header to make the interceptor work on OS X.
Differential Revision: http://reviews.llvm.org/D14379
llvm-svn: 252160
|
| |
|
|
|
|
|
|
| |
This implements a "poor man's TLV" to be used for TSan's ThreadState on OS X. Based on the fact that `pthread_self()` is always available and reliable and returns a valid pointer to memory, we'll use the shadow memory of this pointer as a thread-local storage. No user code should ever read/write to this internal libpthread structure, so it's safe to use it for this purpose. We lazily allocate the ThreadState object and store the pointer here.
Differential Revision: http://reviews.llvm.org/D14288
llvm-svn: 252159
|
| |
|
|
|
|
|
|
| |
TSan needs to use a custom malloc zone on OS X, which is already implemented in ASan. This patch uses the sanitizer_common implementation in `sanitizer_malloc_mac.inc` for TSan as well.
Reviewed at http://reviews.llvm.org/D14330
llvm-svn: 252155
|
| |
|
|
|
|
| |
Posix.
llvm-svn: 252121
|
| |
|
|
|
|
|
| |
mmap() offset argument has type off_t, not unsigned. off_t is usually
64-bit on 64-bit Linux.
llvm-svn: 252103
|
| |
|
|
|
|
|
| |
Looks like this commit is deadlocking the ASAN tests on the green dragon bot
(http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA/).
llvm-svn: 252076
|
| |
|
|
|
|
|
|
| |
container.
Differential Revision: http://reviews.llvm.org/D14341
llvm-svn: 252071
|
| |
|
|
| |
llvm-svn: 252053
|
| |
|
|
|
|
|
|
| |
TSan needs to use a custom malloc zone on OS X, which is already implemented in ASan. This patch is a refactoring patch (NFC) that extracts this from ASan into sanitizer_common, where we can reuse it in TSan.
Reviewed at http://reviews.llvm.org/D14330
llvm-svn: 252052
|
| |
|
|
|
|
|
|
| |
On OS X, GCD worker threads are created without a call to pthread_create. We need to properly register these threads with ThreadCreate and ThreadStart. This patch uses a libpthread API (`pthread_introspection_hook_install`) to get notifications about new threads and about threads that are about to be destroyed.
Differential Revision: http://reviews.llvm.org/D14328
llvm-svn: 252049
|
| |
|
|
|
|
|
|
| |
Updating the shadow memory initialization in `tsan_platform_mac.cc` to also initialize the meta shadow and to mprotect the memory ranges that need to be avoided.
Differential Revision: http://reviews.llvm.org/D14324
llvm-svn: 252044
|