aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorDan Liew <dan@su-root.co.uk>2018-09-24 09:28:35 +0000
committerDan Liew <dan@su-root.co.uk>2018-09-24 09:28:35 +0000
commit071fdc1b01ecab23cacb8e1ef9739405d6f8cc69 (patch)
tree48239080ca2e6879e1d21f842bee8ca2df499abc /clang/lib/CodeGen/CodeGenModule.cpp
parent94af0612e05def8accaea784d77561eb30da8978 (diff)
downloadllvm-071fdc1b01ecab23cacb8e1ef9739405d6f8cc69.zip
llvm-071fdc1b01ecab23cacb8e1ef9739405d6f8cc69.tar.gz
llvm-071fdc1b01ecab23cacb8e1ef9739405d6f8cc69.tar.bz2
Fix the configuration of the Primary allocator for Darwin ARM64 by
changing the value of `SANITIZER_MMAP_RANGE_SIZE` to something more sensible. The available VMA is at most 64GiB and not 256TiB that was previously being used. This change gives us several wins: * Drastically improves LeakSanitizer performance on Darwin ARM64 devices. On a simple synthentic benchmark this took leak detection time from ~30 seconds to 0.5 seconds due to the `ForEachChunk(...)` method enumerating a much smaller number of regions. Previously we would pointlessly iterate over a large portion of the SizeClassAllocator32's ByteMap that would could never be set due it being configured for a much larger VM space than is actually availble. * Decreases the memory required for the Primary allocator. Previously the ByteMap inside the the allocator used an array of pointers that took 512KiB of space. Now the required space for the array is 128 bytes. rdar://problem/43509428 Differential Revision: https://reviews.llvm.org/D51173 llvm-svn: 342868
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions