1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/tools
Teresa Johnson b1e839beb3 [ThinLTO] Use MD5 hash in function index.
Summary:
This patch uses the lower 64-bits of the MD5 hash of a function name as
a GUID in the function index, instead of storing function names. Any
local functions are first given a global name by prepending the original
source file name. This is the same naming scheme and GUID used by PGO in
the indexed profile format.

This change has a couple of benefits. The primary benefit is size
reduction in the combined index file, for example 483.xalancbmk's
combined index file was reduced by around 70%. It should also result in
memory savings for the index file in memory, as the in-memory map is
also indexed by the hash instead of the string.

Second, this enables integration with indirect call promotion, since the
indirect call profile targets are recorded using the same global naming
convention and hash. This will enable the function importer to easily
locate function summaries for indirect call profile targets to enable
their import and subsequent promotion.

The original source file name is recorded in the bitcode in a new
module-level record for use in the ThinLTO backend pipeline.

Reviewers: davidxl, joker.eph

Subscribers: llvm-commits, joker.eph

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

llvm-svn: 260408
2016-02-10 18:57:54 +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 Remove autoconf support 2016-01-26 21:29:08 +00:00
llc Remove autoconf support 2016-01-26 21:29:08 +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
llvm-bcanalyzer [ThinLTO] Use MD5 hash in function index. 2016-02-10 18:57:54 +00:00
llvm-c-test Add support for struct in C API test 2016-02-10 00:38:50 +00:00
llvm-config llvm-config: Fix DLL prefix on cygming. 2016-02-10 03:09:13 +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 Make more headers self-contained. 2016-01-27 18:03:37 +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] Merge cu_index from DWPs 2016-02-06 01:15:26 +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 Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-lto Remove autoconf support 2016-01-26 21:29:08 +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
llvm-mcmarkup Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-nm [llvm-nm] Add -radix option 2016-02-10 17:51:39 +00:00
llvm-objdump Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-pdbdump Remove autoconf support 2016-01-26 21:29:08 +00:00
llvm-profdata [PGO] Differentiate Clang instrumentation and IR level instrumentation profiles 2016-02-10 17:18:30 +00:00
llvm-readobj Revert "[llvm-readobj] Option to emit readelf like output" 2016-02-10 18:21:01 +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 This brings back commit r259578. 2016-02-09 21:39:49 +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 Add missing raw_ostream include 2016-01-29 00:03:34 +00:00
msbuild
obj2yaml Remove autoconf support 2016-01-26 21:29:08 +00:00
opt Move SafeStack to CodeGen. 2016-01-27 16:53:42 +00:00
sancov Remove autoconf support 2016-01-26 21:29:08 +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 Remove autoconf support 2016-01-26 21:29:08 +00:00
CMakeLists.txt [CMake] Adding llvm-profdata to the list of tools clang needs. 2015-12-16 18:30:36 +00:00
LLVMBuild.txt llvm-dwp: Initial layout 2015-12-01 00:48:34 +00:00