llvm-project/compiler-rt/lib
Dmitry Vyukov afdcc96d9f 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.

llvm-svn: 209897
2014-05-30 13:36:29 +00:00
..
BlocksRuntime Move tests for BlocksRuntime and builtins to corresponding directories under test/ 2014-02-14 09:47:31 +00:00
asan [Sanitizers Win] Move duplicate Windows-specific compiler flags to a common CMake variable 2014-05-30 12:42:57 +00:00
builtins Implement __divtf3 for IEEE quad precision. 2014-05-30 11:08:18 +00:00
dfsan The newest versions of CMake require outputs of custom commands be in 2014-04-30 23:31:45 +00:00
interception [ASan/Win] Use the new function interception approach to handle function wrappers too; wrap strlen() in DLLs 2014-05-22 12:03:40 +00:00
lsan light up sanitizers for ARM, take 2 2014-05-29 22:38:13 +00:00
msan tsan: do not use 64-bit atomics in allocator code 2014-05-28 15:22:12 +00:00
msandr [msandr] Access app TLS directly in native exec mode. 2014-01-20 13:09:29 +00:00
profile Go via uintptr_t when casting away constness, otherwise GCC will warn 2014-05-20 16:37:07 +00:00
sanitizer_common tsan: optimize memory access functions 2014-05-30 13:36:29 +00:00
tsan tsan: optimize memory access functions 2014-05-30 13:36:29 +00:00
ubsan [ubsan] handle long double in 32-bit mode; part of the patch by Marek Polacek 2014-05-23 14:45:13 +00:00
CMakeLists.txt Enable building of sanitizers on FreeBSD 2014-04-09 18:45:12 +00:00
Makefile.mk Move original compiler-rt functions (libgcc replacement) to lib/builtins directory 2014-02-14 09:20:33 +00:00