summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2015-04-22 20:56:42 +0000
committerReid Kleckner <reid@kleckner.net>2015-04-22 20:56:42 +0000
commitf52e2f3ef5b492f8f9439f45737e3a5a78d9b5d9 (patch)
tree5933053e99cd358192f30525886a9e3d4c81418b
parentfd491461fc4bf24de4b29d5fba6f2c09c5d2311f (diff)
[Allocator] Remove memory poisoning before deallocation
I added the poisoning back in r76891 (2009) because of some bugs in Unladen Swallow, and then Evan Cheng added the setRangeWritable() call in r81308. Profiling a Release+Asserts build on Windows shows that this memory protection call is actually very expensive. 4 seconds of a 70 second Clang compilation are spent in VirtualQuery. These days we have more reliable tools like ASan to find these kinds of bugs, so we can go ahead and retire these checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235542 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Support/Allocator.h14
1 files changed, 0 insertions, 14 deletions
diff --git a/include/llvm/Support/Allocator.h b/include/llvm/Support/Allocator.h
index 94cf3e85f3..6ef4344f8f 100644
--- a/include/llvm/Support/Allocator.h
+++ b/include/llvm/Support/Allocator.h
@@ -320,14 +320,6 @@ private:
for (; I != E; ++I) {
size_t AllocatedSlabSize =
computeSlabSize(std::distance(Slabs.begin(), I));
-#ifndef NDEBUG
- // Poison the memory so stale pointers crash sooner. Note we must
- // preserve the Size and NextPtr fields at the beginning.
- if (AllocatedSlabSize != 0) {
- sys::Memory::setRangeWritable(*I, AllocatedSlabSize);
- memset(*I, 0xCD, AllocatedSlabSize);
- }
-#endif
Allocator.Deallocate(*I, AllocatedSlabSize);
}
}
@@ -337,12 +329,6 @@ private:
for (auto &PtrAndSize : CustomSizedSlabs) {
void *Ptr = PtrAndSize.first;
size_t Size = PtrAndSize.second;
-#ifndef NDEBUG
- // Poison the memory so stale pointers crash sooner. Note we must
- // preserve the Size and NextPtr fields at the beginning.
- sys::Memory::setRangeWritable(Ptr, Size);
- memset(Ptr, 0xCD, Size);
-#endif
Allocator.Deallocate(Ptr, Size);
}
}