[compiler-rt] r267716 - tsan: fix windows Go support
Dmitry Vyukov via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 27 07:03:14 PDT 2016
Author: dvyukov
Date: Wed Apr 27 09:03:14 2016
New Revision: 267716
URL: http://llvm.org/viewvc/llvm-project?rev=267716&view=rev
Log:
tsan: fix windows Go support
Unmap can't unmap arbitrary regions on windows.
Modified:
compiler-rt/trunk/lib/tsan/rtl/tsan_sync.cc
Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_sync.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_sync.cc?rev=267716&r1=267715&r2=267716&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_sync.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_sync.cc Wed Apr 27 09:03:14 2016
@@ -120,6 +120,12 @@ bool MetaMap::FreeRange(Processor *proc,
// without meta objects, at this point it stops freeing meta objects. Because
// thread stacks grow top-down, we do the same starting from end as well.
void MetaMap::ResetRange(Processor *proc, uptr p, uptr sz) {
+ if (kGoMode) {
+ // UnmapOrDie/MmapFixedNoReserve does not work on Windows,
+ // so we do the optimization only for C/C++.
+ FreeRange(proc, p, sz);
+ return;
+ }
const uptr kMetaRatio = kMetaShadowCell / kMetaShadowSize;
const uptr kPageSize = GetPageSizeCached() * kMetaRatio;
if (sz <= 4 * kPageSize) {
More information about the llvm-commits
mailing list