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 5d83896911 [dsymutil] Be smarter in caching calls to realpath
Calling realpath is expensive but necessary to perform the uniqueing in
dsymutil. Although we already cached the results for every individual
file in the line table, we had reports of it taking 40 seconds of a 3.5
minute link.

This patch adds a second level of caching. When we do have to call
realpath, we cache its result for its parents path. We didn't replace
the existing caching, because it's fast (indexed) and saves us from
reading the line table for entries we've already seen.

For WebkitCore this results in a decrease of 11% in linking time: from
85.79 to 76.11 seconds (average over 3 runs).

Differential revision: https://reviews.llvm.org/D43511

llvm-svn: 325757
2018-02-22 09:20:40 +00:00
..
BinaryHolder.cpp Make the Error class constructor protected 2016-11-11 04:28:40 +00:00
BinaryHolder.h Re-land "[dsymutil] Timestmap verification for __swift_ast" 2017-10-13 14:41:23 +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 [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
DebugMap.cpp [dsymutil, llvm-objcopy] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-01 21:16:06 +00:00
DebugMap.h Re-land [dsymutil] Upstream update feature 2018-02-08 10:48:54 +00:00
dsymutil.cpp [dsymutil] Use llvm::sys::path to join bundle path. 2018-02-08 16:31:42 +00:00
dsymutil.h Re-land [dsymutil] Upstream update feature 2018-02-08 10:48:54 +00:00
DwarfLinker.cpp [dsymutil] Be smarter in caching calls to realpath 2018-02-22 09:20:40 +00:00
LLVMBuild.txt
MachODebugMapParser.cpp Remove redundant includes from tools. 2017-12-13 21:31:10 +00:00
MachOUtils.cpp [dsymutil] Make NonRelocatableStringPool a wrapper around DwarfStringPoolEntry. NFC 2018-01-24 16:16:43 +00:00
MachOUtils.h
NonRelocatableStringpool.h [dsymutil] Make NonRelocatableStringPool a wrapper around DwarfStringPoolEntry. NFC 2018-01-24 16:16:43 +00:00