1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/include/llvm
Piotr Padlewski 3152e057e1 [thinlto] Basic thinlto fdo heuristic
Summary:
This patch improves thinlto importer
by importing 3x larger functions that are called from hot block.

I compared performance with the trunk on spec, and there
were about 2% on povray and 3.33% on milc. These results seems
to be consistant and match the results Teresa got with her simple
heuristic. Some benchmarks got slower but I think they are just
noisy (mcf, xalancbmki, omnetpp)- running the benchmarks again with
more iterations to confirm. Geomean of all benchmarks including the noisy ones
were about +0.02%.

I see much better improvement on google branch with Easwaran patch
for pgo callsite inlining (the inliner actually inline those big functions)
Over all I see +0.5% improvement, and I get +8.65% on povray.
So I guess we will see much bigger change when Easwaran patch will land
(it depends on new pass manager), but it is still worth putting this to trunk
before it.

Implementation details changes:
- Removed CallsiteCount.
- ProfileCount got replaced by Hotness
- hot-import-multiplier is set to 3.0 for now,
didn't have time to tune it up, but I see that we get most of the interesting
functions with 3, so there is no much performance difference with higher, and
binary size doesn't grow as much as with 10.0.

Reviewers: eraman, mehdi_amini, tejohnson

Subscribers: mehdi_amini, llvm-commits

Differential Revision: https://reviews.llvm.org/D24638

llvm-svn: 282437
2016-09-26 20:37:32 +00:00
..
ADT Allow StringRef to be constructed from a null pointer. 2016-09-26 20:08:05 +00:00
Analysis [thinlto] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +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] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +00:00
CodeGen MachineInstr: Fix comment typo, further refine comment; NFC 2016-09-26 18:38:05 +00:00
Config Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00
DebugInfo Revert r282238 "Revert r282235 "[llvm-dwarfdump] - Teach dwarfdump to dump gdb-index section."" 2016-09-23 11:01:53 +00:00
Demangle Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00
ExecutionEngine Fix MSVC 2013 build by using our <thread> wrapper header 2016-09-13 18:40:04 +00:00
IR [thinlto] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +00:00
IRReader [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
LibDriver [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
LineEditor Apply clang-tidy's misc-move-constructor-init throughout LLVM. 2016-05-27 14:27:24 +00:00
Linker Linker: teach the IR mover to return llvm::Error. 2016-05-27 05:21:35 +00:00
LTO LTO: Simplify caching interface. 2016-09-23 21:33:43 +00:00
MC Fix typo in comment, NFC 2016-09-26 12:38:03 +00:00
Object [Stackmap] Added callsite counts to emitted function information. 2016-09-14 20:22:03 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +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] Significantly refactor the pass pipeline parsing to be easier to 2016-08-03 03:21:41 +00:00
ProfileData [Coverage] Clarify a function contract (NFC) 2016-09-23 20:13:44 +00:00
Support Defer asm errors to post-statement failure 2016-09-16 18:30:20 +00:00
TableGen [TableGen] Autobrief-ize Record. NFC. 2016-07-14 14:53:14 +00:00
Target Add support to optionally limit the size of jump tables. 2016-09-26 15:32:33 +00:00
Transforms Remove pruning of phi nodes in MemorySSA - it makes updating harder 2016-09-26 17:22:54 +00:00
CMakeLists.txt
InitializePasses.h Rename NameAnonFunctions to NameAnonGlobals to match what it is doing (NFC) 2016-09-16 16:56:30 +00:00
LinkAllIR.h Remove every uses of getGlobalContext() in LLVM (but the C API) 2016-04-14 21:59:01 +00:00
LinkAllPasses.h Add a counter-function insertion pass 2016-09-01 09:42:39 +00:00
module.modulemap [modules] Re-enable some previously excluded files. 2016-09-13 14:41:35 +00:00
module.modulemap.build
Pass.h Remove unused header. 2016-05-25 22:56:58 +00:00
PassAnalysisSupport.h Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
PassInfo.h
PassRegistry.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
PassSupport.h [LPM] Reinstate r271781 which reinstated r271652 to replace the 2016-06-04 19:57:55 +00:00