1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/tools
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
..
bugpoint Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-02 18:20:45 +00:00
bugpoint-passes Remove autoconf support 2016-01-26 21:29:08 +00:00
dsymutil [dsymutil] Skip mach-o paired relocations 2016-02-01 04:43:14 +00:00
gold [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
llc Add a flag to the LLVMContext to disable name for Value other than GlobalValue 2016-03-10 01:28:54 +00:00
lli [Orc] Add lazy-JITting support for i386. 2016-02-10 01:02:33 +00:00
llvm-ar Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-as Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-as-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-bcanalyzer [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
llvm-c-test Add support for invoke/landingpad/resume in C API test 2016-02-18 20:38:32 +00:00
llvm-config [llvm-config] Get rid of code related to the Makefile builds 2016-03-08 11:49:24 +00:00
llvm-cov Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-cxxdump Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-diff Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00
llvm-dis Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-dwarfdump Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-dwp llvm-dwp: Add missing copyright notice to llvm-dwp.cpp 2016-03-01 22:29:00 +00:00
llvm-extract Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-go Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-jitlistener Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-link Pass a std::unique_ptr to IRMover::move. 2016-02-16 18:50:12 +00:00
llvm-lto [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
llvm-mc Move MCTargetAsmParser.h to llvm/MC/MCParser where it belongs. 2016-01-27 10:01:28 +00:00
llvm-mc-fuzzer [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. 2015-10-02 23:34:06 +00:00
llvm-mcmarkup Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-nm [llvm-nm] Restore the previous behaviour (pre r262525). 2016-03-02 22:33:49 +00:00
llvm-objdump [lanai] Add ELF enum value and relocations. 2016-03-01 21:21:42 +00:00
llvm-pdbdump [llvm-pdbdump] Dump line table information. 2016-03-08 21:42:24 +00:00
llvm-profdata Add a profile summary class specific to instrumentation profiles. 2016-02-17 18:18:47 +00:00
llvm-readobj [llvm-readobj] Enable GNU style section group print 2016-03-09 19:16:13 +00:00
llvm-rtdyld Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-shlib Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-size [llvm-size] Remove variable used only once. 2016-02-13 01:52:47 +00:00
llvm-split Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-stress Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-symbolizer Remove autoconf support 2016-01-26 21:29:08 +00:00
lto void foo() is not a valid C prototype, one has to write void foo(void) 2016-03-09 02:36:09 +00:00
msbuild MSBuild integration: fix the loop in install.bat 2014-09-30 22:30:06 +00:00
obj2yaml Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
opt [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
sancov [sancov] print_coverage_points command. 2016-02-27 02:21:44 +00:00
sanstats Remove autoconf support 2016-01-26 21:29:08 +00:00
verify-uselistorder Remove autoconf support 2016-01-26 21:29:08 +00:00
xcode-toolchain [CMake] [Darwin] Add support for generating Xcode-compatible toolchains that xcodebuild and xcrun can search 2015-10-15 20:09:01 +00:00
yaml2obj Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
CMakeLists.txt [CMake] Add the gold plugin before clang 2016-02-26 21:07:04 +00:00
LLVMBuild.txt llvm-dwp: Initial layout 2015-12-01 00:48:34 +00:00