llvm-project/llvm/lib
Teresa Johnson cd21a646f6 [ThinLTO] Perform profile-guided indirect call promotion
Summary:
To enable profile-guided indirect call promotion in ThinLTO mode, we
simply add call graph edges for each profitable target from the profile
to the summaries, then the summary-guided importing will consider the
callee for importing as usual.

Also we need to enable the indirect call promotion pass creation in the
PassManagerBuilder when PerformThinLTO=true (we are in the ThinLTO
backend), so that the newly imported functions are considered for
promotion in the backends.

The IC promotion profiles refer to callees by GUID, which required
adding GUIDs to the per-module VST in bitcode (and assigning them
valueIds similar to how they are assigned valueIds in the combined
index).

Reviewers: mehdi_amini, xur

Subscribers: mehdi_amini, davidxl, llvm-commits

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

llvm-svn: 275707
2016-07-17 14:47:01 +00:00
..
Analysis [ThinLTO] Perform profile-guided indirect call promotion 2016-07-17 14:47:01 +00:00
AsmParser Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
Bitcode [ThinLTO] Perform profile-guided indirect call promotion 2016-07-17 14:47:01 +00:00
CodeGen [PM] Convert IVUsers analysis to new pass manager. 2016-07-16 22:51:33 +00:00
DebugInfo [pdb] Teach MsfBuilder and other classes about the Free Page Map. 2016-07-15 22:17:19 +00:00
ExecutionEngine [LLVM][MIPS] Fix createStubFunction to emit JR encoding based on Arch. 2016-07-15 12:56:37 +00:00
Fuzzer [libFuzzer] add hooks for strstr, strcasestr, strcasecmp, strncasecmp 2016-07-15 23:27:19 +00:00
IR [OptRemark,LDist] RFC: Add hotness attribute 2016-07-15 17:23:20 +00:00
IRReader
LTO Move legacy LTO interface headers to legacy/ directory. 2016-07-14 21:21:16 +00:00
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
MC [codeview] Shrink inlined call site line info tables 2016-07-14 23:47:15 +00:00
Object BPF: Use official ELF e_machine value 2016-07-15 22:27:55 +00:00
ObjectYAML BPF: Use official ELF e_machine value 2016-07-15 22:27:55 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes [PM] Convert IVUsers analysis to new pass manager. 2016-07-16 22:51:33 +00:00
ProfileData [Coverage] Mark a few more methods const (NFC) 2016-07-15 01:19:33 +00:00
Support [Object] Re-apply r275316 now that I have the corresponding LLD patch ready. 2016-07-14 02:24:01 +00:00
TableGen [TableGen] Autobrief-ize Record. NFC. 2016-07-14 14:53:14 +00:00
Target test commit 2016-07-17 12:10:35 +00:00
Transforms [ThinLTO] Perform profile-guided indirect call promotion 2016-07-17 14:47:01 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00