llvm-project/compiler-rt/lib/tsan/go
Dmitry Vyukov bde4c9c773 tsan: refactor storage of meta information for heap blocks and sync objects
The new storage (MetaMap) is based on direct shadow (instead of a hashmap + per-block lists).
This solves a number of problems:
 - eliminates quadratic behaviour in SyncTab::GetAndLock (https://code.google.com/p/thread-sanitizer/issues/detail?id=26)
 - eliminates contention in SyncTab
 - eliminates contention in internal allocator during allocation of sync objects
 - removes a bunch of ad-hoc code in java interface
 - reduces java shadow from 2x to 1/2x
 - allows to memorize heap block meta info for Java and Go
 - allows to cleanup sync object meta info for Go
 - which in turn enabled deadlock detector for Go

llvm-svn: 209810
2014-05-29 13:50:54 +00:00
..
build.bat tsan: refactor storage of meta information for heap blocks and sync objects 2014-05-29 13:50:54 +00:00
buildgo.sh tsan: refactor storage of meta information for heap blocks and sync objects 2014-05-29 13:50:54 +00:00
test.c tsan: update interface for Go 2014-03-06 13:17:28 +00:00
tsan_go.cc tsan: stop background thread when sandbox is enabled 2014-04-24 13:09:17 +00:00