1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/include/llvm
Teresa Johnson e1affa2f8c [ThinLTO] Support for reference graph in per-module and combined summary.
Summary:
This patch adds support for including a full reference graph including
call graph edges and other GV references in the summary.

The reference graph edges can be used to make importing decisions
without materializing any source modules, can be used in the plugin
to make file staging decisions for distributed build systems, and is
expected to have other uses.

The call graph edges are recorded in each function summary in the
bitcode via a list of <CalleeValueIds, StaticCount> tuples when no PGO
data exists, or <CalleeValueId, StaticCount, ProfileCount> pairs when
there is PGO, where the ValueId can be mapped to the function GUID via
the ValueSymbolTable. In the function index in memory, the call graph
edges reference the target via the CalleeGUID instead of the
CalleeValueId.

The reference graph edges are recorded in each summary record with a
list of referenced value IDs, which can be mapped to value GUID via the
ValueSymbolTable.

Addtionally, a new summary record type is added to record references
from global variable initializers. A number of bitcode records and data
structures have been renamed to reflect the newly expanded scope of the
summary beyond functions. More cleanup will follow.

Reviewers: joker.eph, davidxl

Subscribers: joker.eph, llvm-commits

Differential Revision: http://reviews.llvm.org/D17212

llvm-svn: 263275
2016-03-11 18:52:24 +00:00
..
ADT libLTO: add a ThinLTOCodeGenerator on the model of LTOCodeGenerator. 2016-03-09 01:37:22 +00:00
Analysis Remove PreserveNames template parameter from IRBuilder 2016-03-11 17:15:50 +00:00
AsmParser [AsmParser] Expose an API to parse a string starting with a type. 2016-03-08 00:37:07 +00:00
Bitcode [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
CodeGen [IRTranslator] Translate unconditional branches. 2016-03-11 17:28:03 +00:00
Config Revert r130657, "Windows/DynamicLibrary.inc: Clean up ELM_Callback. We may check the decl instead of the versions of individual libraries." 2016-03-07 00:13:09 +00:00
DebugInfo [DebugInfoPDB] Add source / line number accessors for PDB. 2016-02-18 18:47:29 +00:00
ExecutionEngine [Orc] Add stack-realignment code to the i386 resolver function. 2016-02-21 22:50:26 +00:00
IR [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
IRReader [ThinLTO] Metadata linking for imported functions 2015-12-17 17:14:09 +00:00
LibDriver LibDriver: Replace references to lld-link2 with lld-link. 2015-08-06 19:00:42 +00:00
LineEditor Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Linker Pass a std::unique_ptr to IRMover::move. 2016-02-16 18:50:12 +00:00
LTO libLTO: add a ThinLTOCodeGenerator on the model of LTOCodeGenerator. 2016-03-09 01:37:22 +00:00
MC [ms-inline-asm][AVX512] Add ability to use k registers in MS inline asm + fix bag with curly braces 2016-03-07 18:11:16 +00:00
Object [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
ObjectYAML Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
Option Convert Arg, ArgList, and Option to dump() to dbgs() rather than errs(). 2015-12-18 18:55:26 +00:00
Passes [PM] Wire up optimization levels and default pipeline construction APIs 2016-02-28 22:16:03 +00:00
ProfileData [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
Support More UTF string conversion wrappers 2016-03-11 15:59:32 +00:00
TableGen A couple more UB fixes for C++14 sized deallocation. 2016-03-08 00:59:44 +00:00
Target [GlobalISel][Target] Add an opcode for unconditional branch. 2016-03-11 17:27:38 +00:00
Transforms [PM] Sink the "Expression" type for GVN into the class as a private 2016-03-11 16:25:19 +00:00
CMakeLists.txt
InitializePasses.h [PM] Port GVN to the new pass manager, wire it up, and teach a couple of 2016-03-11 08:50:55 +00:00
LinkAllIR.h
LinkAllPasses.h [PM] Port GVN to the new pass manager, wire it up, and teach a couple of 2016-03-11 08:50:55 +00:00
module.modulemap Fix the LLVM_ENABLE_MODULES build after adding TargetOpcodes.def in r259726. 2016-02-09 01:35:45 +00:00
module.modulemap.build
Pass.h Recommit r256952 "Filtering IR printing for print-after-all/print-before-all" 2016-01-06 22:55:03 +00:00
PassAnalysisSupport.h [PassManager] Tuning Memory Usage of AnalysisUsage 2015-12-08 00:10:56 +00:00
PassInfo.h Reformat partially. 2015-10-05 04:46:30 +00:00
PassRegistry.h Reorganize the C API headers to improve build times. 2015-12-18 01:46:52 +00:00
PassSupport.h Support: Clean up TSan annotations. 2015-08-18 22:31:24 +00:00