[sanitizer] Fix build on ARM.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209884 91177308-0d34-0410-b5e6-96231b3b80d8
Implement __divtf3 for IEEE quad precision.

Patch by: GuanHong Liu
Differential Revision: http://reviews.llvm.org/D2800


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209886 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan Win] Fix a couple of warnings in tests and enable -WX

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209887 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizers Win] Move duplicate Windows-specific compiler flags to a common CMake variable

Reviewed at http://reviews.llvm.org/D3952

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209889 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: optimize memory access functions
The optimization is two-fold:
First, the algorithm now uses SSE instructions to
handle all 4 shadow slots at once. This makes processing
faster.
Second, if shadow contains the same access, we do not
store the event into trace. This increases effective
trace size, that is, tsan can remember up to 10x more
previous memory accesses.

Perofrmance impact:
Before:
[       OK ] DISABLED_BENCH.Mop8Read (2461 ms)
[       OK ] DISABLED_BENCH.Mop8Write (1836 ms)
After:
[       OK ] DISABLED_BENCH.Mop8Read (1204 ms)
[       OK ] DISABLED_BENCH.Mop8Write (976 ms)
But this measures only fast-path.
On large real applications the speedup is ~20%.

Trace size impact:
On app1:
Memory accesses                   :       1163265870
  Including same                  :        791312905 (68%)
on app2:
Memory accesses                   :        166875345
  Including same                  :        150449689 (90%)
90% of filtered events means that trace size is effectively 10x larger.




git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209897 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: make positive tests more robust
Add a script that is used to deflake inherently flaky tsan tests.
It is invoked from lit tests as:
%deflake %run %t
The script runs the target program up to 10 times,
until it produces a tsan warning.



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209898 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: add a test from data-race-test suite:
https://code.google.com/p/data-race-test/source/browse/trunk/unittest/racecheck_unittest.cc



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209900 91177308-0d34-0410-b5e6-96231b3b80d8
Disable stack-overflow test on ARM

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209925 91177308-0d34-0410-b5e6-96231b3b80d8
[TSan] Add a test case for r209939

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209940 91177308-0d34-0410-b5e6-96231b3b80d8
compiler-rt: whitespace and uniformity for arm

Make the whitespace a bit more uniform in the various assembly routines.  This
also makes the assembly files a bit more uniform on the ARM side by explicitly
stating that it is using the unified syntax and that the contents of the code is
in the text section (or segment).  No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209985 91177308-0d34-0410-b5e6-96231b3b80d8
compiler-rt: prefer .rodata for non MachO targets

Place constants into .rdata if targeting ELF or COFF/PE.  This should be
functionally identical, however, the data would be placed into a different
section.  This is purely a cleanup change.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209986 91177308-0d34-0410-b5e6-96231b3b80d8
[sancov] Remove debug leftovers and update usage text.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210009 91177308-0d34-0410-b5e6-96231b3b80d8
[asan] Improve vDSO check in AsanCheckDynamicRTPrereqs; patch by  Yuri Gribov

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210012 91177308-0d34-0410-b5e6-96231b3b80d8
[msan] Handle x86 vector pack intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210020 91177308-0d34-0410-b5e6-96231b3b80d8
[asan] Default to memory-mapped coverage on Android.

The alternative (writing coverage at process exit) is nearly useless there.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210024 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan Win] Fix memset interception in DLLs

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210027 91177308-0d34-0410-b5e6-96231b3b80d8
[Sanitizer/interception Win] Break into the debugger on unknown instructions

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210028 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan Win] Manually call __asan_init early in the DLL initialization process to avoid a null function call in cout/cerr constructors

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210030 91177308-0d34-0410-b5e6-96231b3b80d8
Cleanup Android build and provide better diagnostics

No longer need to set ANDROID if COMPILER_RT_TEST_TARGET_TRIPLE is
arm-linux-androideabi.

No need to set ANDROID_COMMON_FLAGS.  These flags are already in
CMAKE_CXX_FLAGS which are used in try_compile().

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@210053 91177308-0d34-0410-b5e6-96231b3b80d8
Merge pull request #7 from llvm-mirror/master

git pull