llvm-project/clang/lib
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
..
ARCMigrate [ARCMigrate] When applying changes from remap files, disable the 'adjustRemovals' functionality of EditedSource 2017-04-28 00:25:06 +00:00
AST [ODRHash] Add support for array and decayed types, and parameter names and types. 2017-05-02 23:58:52 +00:00
ASTMatchers [clang] Register isConstexpr matcher 2017-04-16 19:05:17 +00:00
Analysis Fix PR13910: Don't warn that __builtin_unreachable() is unreachable 2017-04-11 15:36:06 +00:00
Basic Revert r302037 2017-05-03 16:22:16 +00:00
CodeGen IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI. 2017-05-04 03:36:16 +00:00
Driver [sanitizer-coverage] add a deprecation warning to the old sanitizer-coverage flag combinations 2017-05-03 01:27:28 +00:00
Edit [ARCMigrate] When applying changes from remap files, disable the 'adjustRemovals' functionality of EditedSource 2017-04-28 00:25:06 +00:00
Format clang-format: [JS] parse async function declarations. 2017-04-27 13:07:24 +00:00
Frontend Add #pragma clang module begin/end pragmas and generate them when preprocessing a module. 2017-05-04 00:29:54 +00:00
FrontendTool unique_ptrify createDriverOptTable 2017-01-13 17:34:15 +00:00
Headers [X86][AVX] Added support for _mm256_zext* helper intrinsics (PR32839) 2017-04-29 17:17:06 +00:00
Index [index] Handle vector types in USR generator 2017-04-28 09:46:36 +00:00
Lex Add #pragma clang module begin/end pragmas and generate them when preprocessing a module. 2017-05-04 00:29:54 +00:00
Parse [OpenMP] Extended parse for 'always' map modifier 2017-05-03 15:28:48 +00:00
Rewrite [analyzer] Re-apply r283092, attempt no.4, chunk no.4 (last) 2016-10-07 19:25:10 +00:00
Sema Reusing an existing attribute diagnostic 2017-05-03 14:05:00 +00:00
Serialization Silences gcc's -Wnarrowing. 2017-05-03 07:48:27 +00:00
StaticAnalyzer [analyzer] Fix memory error bug category capitalization. 2017-05-03 11:47:13 +00:00
Tooling Add `replace` interface with range in AtomicChange. 2017-03-30 13:07:38 +00:00
CMakeLists.txt