summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-06-29 16:50:41 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-06-29 16:50:41 +0000
commit3ff7915c334398713180cbbfb4a16ce6fe48386f (patch)
treecd1e5701dde9fa7974b6c7869bc0d734668b4379 /clang/lib/Frontend/CompilerInvocation.cpp
parentcccc236a964b81b20eb2be60939bbc7ddaa3fdf2 (diff)
downloadbcm5719-llvm-3ff7915c334398713180cbbfb4a16ce6fe48386f.tar.gz
bcm5719-llvm-3ff7915c334398713180cbbfb4a16ce6fe48386f.zip
[dsymutil] Introduce a new CachedBinaryHolder
The original binary holder has an optimization where it caches a static library (archive) between consecutive calls to GetObjects. However, the actual memory buffer wasn't cached between calls. This made sense when dsymutil was processing objects one after each other, but when processing them in parallel, several binaries have to be in memory at the same time. For this reason, every link context contained a binary holder. Having one binary holder per context is problematic, because the same static archive was cached for every object file. Luckily, when the file is mmap'ed, this was only costing us virtual memory. This patch introduces a new BinaryHolder variant that is fully cached, for all the object files it load, as well as the static archives. This way, we don't have to give up on this optimization of bypassing the file system. Differential revision: https://reviews.llvm.org/D48501 llvm-svn: 335990
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud