summaryrefslogtreecommitdiff
path: root/lib/tsan/rtl/tsan_interface.cc
AgeCommit message (Collapse)Author
2017-01-07tsan: Introducing a function to flush the shadow memory from third-party ↵Dmitry Vyukov
libraries As discussed with Dmitry (https://goo.gl/SA4izd), I would like to introduce a function to be called from a third-party library to flush the shadow memory. In particular, we ran some experiments with our tool Archer (an OpenMP data race detector based on Tsan, https://github.com/PRUNER/archer) and flushing the memory at the end of an outer parallel region, slightly increase the runtime overhead, but reduce the memory overhead of about 30%. This feature would come very handy in case of very large OpenMP applications that may cause an "out of memory" exception when checked with Tsan. Reviewed in: https://reviews.llvm.org/D28443 Author: Simone Atzeni (simoatze) git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@291346 91177308-0d34-0410-b5e6-96231b3b80d8
2015-05-05tsan: add memory access functions that accept pcDmitry Vyukov
This is required for Java support, as real PCs don't work for Java. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@236484 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-27tsan: properly instrument unaligned accessesDmitry Vyukov
If a memory access is unaligned, emit __tsan_unaligned_read/write callbacks instead of __tsan_read/write. Required to change semantics of __tsan_unaligned_read/write to not do the user memory. But since they were unused (other than through __sanitizer_unaligned_load/store) this is fine. Fixes long standing issue 17: https://code.google.com/p/thread-sanitizer/issues/detail?id=17 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@227230 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-13Define SANITIZER_INTERFACE_ATTRIBUTE on Windows and fix all the places where ↵Timur Iskhodzhanov
SANITIZER_INTERFACE_ATTRIBUTE or SANITIZER_ATTRIBUTE_WEAK are used git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@188261 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-04[sanitizer] Fix __sanitizer_unaligned_* to work with unaligned data types.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@183224 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30tsan: add interface functions for unaligned access, e.g. ↵Dmitry Vyukov
__sanitizer_unaligned_load16 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@180780 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01tsan: detect races between plain and atomic memory accessesDmitry Vyukov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@174163 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-04Remove file-type tags in .cc files in tsan/ and sanitizer_common/Alexey Samsonov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@157928 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-10[tsan] First commit of ThreadSanitizer (TSan) run-time library.Kostya Serebryany
Algorithm description: http://code.google.com/p/thread-sanitizer/wiki/ThreadSanitizerAlgorithm Status: The tool is known to work on large real-life applications, but still has quite a few rough edges. Nothing is guaranteed yet. The tool works on x86_64 Linux. Support for 64-bit MacOS 10.7+ is planned for late 2012. Support for 32-bit OSes is doable, but problematic and not yet planed. Further commits coming: - tests - makefiles - documentation - clang driver patch The code was previously developed at http://code.google.com/p/data-race-test/source/browse/trunk/v2/ by Dmitry Vyukov and Kostya Serebryany with contributions from Timur Iskhodzhanov, Alexander Potapenko, Alexey Samsonov and Evgeniy Stepanov. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@156542 91177308-0d34-0410-b5e6-96231b3b80d8