hanchenye-llvm-project/llvm/tools
Peter Collingbourne 5f85a9deda IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI.
When profiling a no-op incremental link of Chromium I found that the functions
computeImportForFunction and computeDeadSymbols were consuming roughly 10% of
the profile. The goal of this change is to improve the performance of those
functions by changing the map lookups that they were previously doing into
pointer dereferences.

This is achieved by changing the ValueInfo data structure to be a pointer to
an element of the global value map owned by ModuleSummaryIndex, and changing
reference lists in the GlobalValueSummary to hold ValueInfos instead of GUIDs.
This means that a ValueInfo will take a client directly to the summary list
for a given GUID.

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

llvm-svn: 302108
2017-05-04 03:36:16 +00:00
..
bugpoint [Bugpoint] Use boolean AND instead of bitwise AND (PR32660) 2017-04-14 15:21:15 +00:00
bugpoint-passes
dsymutil [DWARF] - Take relocations in account when extracting ranges from .debug_ranges 2017-04-24 10:19:45 +00:00
gold Re-apply r299168 and r299169 now that the libdeps are fixed. 2017-03-31 04:47:07 +00:00
llc Move Split DWARF handling to an MC option/command line argument rather than using metadata 2017-04-21 23:35:26 +00:00
lli Module::getOrInsertFunction is using C-style vararg instead of variadic templates. 2017-04-11 15:01:18 +00:00
llvm-ar [llvm-ar] Remove unneeded std::, NFCI. 2017-04-05 15:05:05 +00:00
llvm-as
llvm-as-fuzzer
llvm-bcanalyzer Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-c-test Spelling mistakes in comments. NFCI. 2017-03-30 12:59:53 +00:00
llvm-cat Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-config [CMake] Use variable interpolation instead of string concatenation 2017-03-22 12:06:11 +00:00
llvm-cov [ProfileData] Unify getInstrProf*SectionName helpers 2017-04-15 00:09:57 +00:00
llvm-cvtres Add empty shell of llvm-cvtres. 2017-04-21 17:30:29 +00:00
llvm-cxxdump
llvm-cxxfilt c++filt: support COFF import thunks 2017-03-22 21:15:19 +00:00
llvm-diff [IR] Redesign the case iterator in SwitchInst to actually be an iterator 2017-04-12 07:27:28 +00:00
llvm-dis
llvm-dwarfdump Adds initial llvm-dwarfdump --verify support with unit tests. 2017-05-01 22:07:02 +00:00
llvm-dwp
llvm-extract [llvm-extract] Add option for recursive extraction 2017-04-06 20:51:40 +00:00
llvm-go
llvm-jitlistener
llvm-link IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI. 2017-05-04 03:36:16 +00:00
llvm-lto IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI. 2017-05-04 03:36:16 +00:00
llvm-lto2 Object, LTO: Add target triple to irsymtab and LTO API. 2017-04-14 02:55:06 +00:00
llvm-mc [DWARFv5] llvm-mc support for new unit header. 2017-02-28 23:40:46 +00:00
llvm-mc-assemble-fuzzer llvm-mc-fuzzer: add support for assembly 2017-02-27 06:22:17 +00:00
llvm-mc-disassemble-fuzzer llvm-mc-fuzzer: add support for assembly 2017-02-27 06:22:17 +00:00
llvm-mcmarkup
llvm-modextract Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +00:00
llvm-nm [WebAssembly] Improve readobj and nm support for wasm 2017-04-14 19:50:44 +00:00
llvm-objdump [llvm-objdump] Don't attempt to print lines beyond the end of file 2017-04-25 18:56:33 +00:00
llvm-opt-report
llvm-pdbdump Remove unused private field. 2017-05-03 19:42:06 +00:00
llvm-profdata Resubmit r297897: [PGO] Value profile for size of memory intrinsic calls 2017-03-16 21:15:48 +00:00
llvm-readobj [llvm-readobj] Update readobj to re-use parsing code. 2017-05-03 17:11:11 +00:00
llvm-rtdyld
llvm-shlib CMake: Add LLVM_DYLIB_SYMBOL_VERSIONING option 2017-05-03 14:43:44 +00:00
llvm-size
llvm-split
llvm-stress Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
llvm-strings
llvm-symbolizer
llvm-xray [XRay][tools] Remove wayward semicolon (NFC) 2017-04-26 03:49:49 +00:00
lto Spelling mistakes in comments. NFCI. 2017-03-30 12:59:53 +00:00
msbuild Create msbuild only when using MSVC 2017-03-16 20:24:14 +00:00
obj2yaml [WebAssembly] Improve support for WebAssembly binary format 2017-03-30 19:44:09 +00:00
opt Turn DISubprogram into a variable-length node. 2017-04-26 23:59:52 +00:00
sancov [sancov] Fix broken links and displaced coloring in coverage-report-server.py 2017-03-20 14:06:04 +00:00
sanstats
verify-uselistorder
xcode-toolchain
yaml2obj [yaml2obj] Factor out error handling code. 2017-04-05 15:18:16 +00:00
CMakeLists.txt
LLVMBuild.txt Add llvm-cvtres to LLVMBuild.txt 2017-04-21 17:37:31 +00:00