tsan: reduce size of vector clock in Go mode
authorDmitry Vyukov <dvyukov@google.com>
Fri, 13 Feb 2015 15:32:34 +0000 (15:32 +0000)
committerDmitry Vyukov <dvyukov@google.com>
Fri, 13 Feb 2015 15:32:34 +0000 (15:32 +0000)
Go does not have freed memory.
Reduces per-goroutine overhead from 455K to 356K.

https://code.google.com/p/thread-sanitizer/issues/detail?id=89

llvm-svn: 229113

compiler-rt/lib/tsan/rtl/tsan_defs.h

index 24d5cb5..971178d 100644 (file)
@@ -35,7 +35,11 @@ const char *const kTsanOptionsEnv = "TSAN_OPTIONS";
 
 const int kTidBits = 13;
 const unsigned kMaxTid = 1 << kTidBits;
+#ifndef SANITIZER_GO
 const unsigned kMaxTidInClock = kMaxTid * 2;  // This includes msb 'freed' bit.
+#else
+const unsigned kMaxTidInClock = kMaxTid;  // Go does not track freed memory.
+#endif
 const int kClkBits = 42;
 const unsigned kMaxTidReuse = (1 << (64 - kClkBits)) - 1;
 const uptr kShadowStackSize = 64 * 1024;