1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test
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
..
Analysis Add an "addUsedAAAnalyses" helper function 2016-02-09 01:21:57 +00:00
Assembler Fix constant folding of constant vector GEPs with undef or null as pointer argument. 2016-01-19 16:34:31 +00:00
Bindings Add support for struct in C API test 2016-02-10 00:38:50 +00:00
Bitcode [ThinLTO] Use MD5 hash in function index. 2016-02-10 18:57:54 +00:00
BugPoint
CodeGen [X86] Fix stack alignment for MCU target, by Anton Nadolskiy. 2016-02-10 11:57:06 +00:00
DebugInfo [MC] Merge VK_PPC_TPREL in to generic VK_TPREL. 2016-02-10 18:32:01 +00:00
Examples
ExecutionEngine Disable the new Orc lazy JIT tests on Windows, they do not pass 2016-02-10 18:46:42 +00:00
Feature [GMR/OperandBundles] Teach getModRefBehavior about operand bundles 2016-02-09 02:31:47 +00:00
FileCheck
Instrumentation [PGO] Enable compression in pgo instrumentation 2016-02-08 18:13:49 +00:00
Integer
JitListener
LibDriver Add support for producing thin archives in llvm-lib. 2015-07-17 16:01:11 +00:00
Linker [ThinLTO] Remove imported available externally defs from comdats. 2016-02-08 18:47:20 +00:00
LTO [LTO] Restore original linkage of externals prior to splitting 2016-01-18 23:24:54 +00:00
MC [MC] Merge VK_PPC_TPREL in to generic VK_TPREL. 2016-02-10 18:32:01 +00:00
Object Fix identify_magic() to check that a file that starts with MH_MAGIC is 2016-01-26 23:43:37 +00:00
Other
SymbolRewriter
TableGen SelectionDAG: Make Properties a field of SDPatternOperator 2016-02-10 18:40:04 +00:00
tools [ThinLTO] Use MD5 hash in function index. 2016-02-10 18:57:54 +00:00
Transforms [PGO] Indirect-call profile annotation in IR level profiling 2016-02-10 18:24:45 +00:00
Unit
Verifier Add a "gc-transition" operand bundle 2016-01-20 19:50:25 +00:00
YAMLParser
.clang-format
CMakeLists.txt Introduce sanstats tool and llvm::CreateSanitizerStatReport function. 2016-01-16 00:31:11 +00:00
lit.cfg Introduce sanstats tool and llvm::CreateSanitizerStatReport function. 2016-01-16 00:31:11 +00:00
lit.site.cfg.in
TestRunner.sh