1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/lib
Teresa Johnson e27877efb8 [ThinLTO] Efficiency improvement when writing module path string table
Summary:
When writing the combined index, we are walking the entire module
path StringMap in the full index, and checking whether each one should be
included in the index being written. For distributed backends, where we
write an individual combined index for each file, each with only a few
module paths, this is incredibly inefficient. Add a method that takes
a callback and hides the details of whether we are writing the full
combined index, or just a slice, and in the latter case it walks the set
of modules to include instead of the entire index.

For a huge application with around 23K files (i.e. where we were iterating
through the 23K-entry modulePath StringMap 23K times), this change improved
the thin link time by a whopping 48%.

Reviewers: pcc

Subscribers: Prazek, inglorion, llvm-commits

Differential Revision: https://reviews.llvm.org/D33813

llvm-svn: 304516
2017-06-02 01:56:02 +00:00
..
Analysis Add opt-bisect support for region passes. 2017-06-01 21:22:26 +00:00
AsmParser [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Bitcode [ThinLTO] Efficiency improvement when writing module path string table 2017-06-02 01:56:02 +00:00
CodeGen [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
DebugInfo Fix 2 more -Wreorder warnings. 2017-06-01 23:24:50 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine [RuntimeDyld, PowerPC] Fix regression from r303637 2017-05-23 17:03:23 +00:00
Fuzzer [libFuzzer] fix a test to match the new sanitizer run-time 2017-05-31 19:47:11 +00:00
IR Reapply "[Cloning] Take another pass at properly cloning debug info" 2017-06-01 23:02:12 +00:00
IRReader
LineEditor
Linker Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
LTO [ThinLTO] Move -lto-use-new-pm to llvm-lto2, and change it to -use-new-pm. 2017-06-01 23:13:44 +00:00
MC [WebAssembly] MC: Fix references to undefined externals in data section 2017-06-02 01:05:24 +00:00
Object [MachOObject] Fix bind opcode parser error on valid opcode sequence 2017-05-31 22:17:43 +00:00
ObjectYAML [CodeView] Properly align symbol records on read/write. 2017-06-01 21:52:41 +00:00
Option [GSoC] Shell autocompletion for clang 2017-05-23 18:39:08 +00:00
Passes Move GVNHoist to the right position in the new pass manager pipeline. 2017-06-01 23:08:14 +00:00
ProfileData [InstrProf] Use more ArrayRef/StringRef. 2017-05-28 13:23:02 +00:00
Support Revert r304117 - WebAssembly object format isn't ready to be the default 2017-06-02 01:26:17 +00:00
TableGen [TableGen] Remove RecordVal constructor that takes a StringRef and Record::setName(StringRef). Leave just the versions that take an Init. 2017-06-01 06:56:16 +00:00
Target [WebAssembly] MC: Fix references to undefined externals in data section 2017-06-02 01:05:24 +00:00
ToolDrivers Add missing files 2017-05-13 22:10:13 +00:00
Transforms [RS4GC] Comment clarification 2017-06-02 01:52:06 +00:00
XRay [XRay][lib] Support and temporarily skip over CustomEvent records 2017-05-12 01:06:41 +00:00
CMakeLists.txt Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00
LLVMBuild.txt Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00