1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/tools/dsymutil
Jonas Devlieghere 077fd2e850 [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
2018-06-29 16:50:41 +00:00
..
BinaryHolder.cpp [dsymutil] Introduce a new CachedBinaryHolder 2018-06-29 16:50:41 +00:00
BinaryHolder.h [dsymutil] Introduce a new CachedBinaryHolder 2018-06-29 16:50:41 +00:00
CFBundle.cpp [dsymutil][NFC] Replace calls to CoreFoundation with LLVM equivalent. 2017-12-28 14:05:49 +00:00
CFBundle.h [dsymutil] Upstream getBundleInfo implementation 2017-11-30 10:25:28 +00:00
CMakeLists.txt [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
CompileUnit.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
CompileUnit.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
DebugMap.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
DebugMap.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
DeclContext.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
DeclContext.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
dsymutil.cpp [dsymutil] Introduce a new CachedBinaryHolder 2018-06-29 16:50:41 +00:00
dsymutil.h [dsymutil] Introduce a new CachedBinaryHolder 2018-06-29 16:50:41 +00:00
DwarfLinker.cpp [dsymutil] Introduce a new CachedBinaryHolder 2018-06-29 16:50:41 +00:00
DwarfLinker.h [dsymutil] Introduce a new CachedBinaryHolder 2018-06-29 16:50:41 +00:00
DwarfStreamer.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
DwarfStreamer.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
LinkUtils.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
LLVMBuild.txt [dsymutil] Rename llvm-dsymutil -> dsymutil 2018-03-18 11:38:41 +00:00
MachODebugMapParser.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
MachOUtils.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
MachOUtils.h [dsymutil] Fix typos and formatting. NFC. 2018-02-22 11:32:51 +00:00
NonRelocatableStringpool.cpp [tools] Change std::sort to llvm::sort in response to r327219 2018-04-01 21:24:53 +00:00
NonRelocatableStringpool.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00