mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-20 19:42:54 +02:00
077fd2e850
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 |
||
---|---|---|
.. | ||
BinaryHolder.cpp | ||
BinaryHolder.h | ||
CFBundle.cpp | ||
CFBundle.h | ||
CMakeLists.txt | ||
CompileUnit.cpp | ||
CompileUnit.h | ||
DebugMap.cpp | ||
DebugMap.h | ||
DeclContext.cpp | ||
DeclContext.h | ||
dsymutil.cpp | ||
dsymutil.h | ||
DwarfLinker.cpp | ||
DwarfLinker.h | ||
DwarfStreamer.cpp | ||
DwarfStreamer.h | ||
LinkUtils.h | ||
LLVMBuild.txt | ||
MachODebugMapParser.cpp | ||
MachOUtils.cpp | ||
MachOUtils.h | ||
NonRelocatableStringpool.cpp | ||
NonRelocatableStringpool.h |