llvm-project/llvm/test/Bitcode/Inputs
Piotr Padlewski d9830eb79f [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
..
PR23310.bc Fix for PR23310: llvm-dis crashes when trying to upgrade an intrinsic. 2015-07-02 16:22:40 +00:00
invalid-GCTable-overflow.bc Don't overflow GCTable 2015-04-30 04:09:41 +00:00
invalid-abbrev-fixed-size-too-big.bc Verify sizes when trying to read a BitcodeAbbrevOp 2015-04-23 13:25:35 +00:00
invalid-abbrev-no-operands.bc [BitcodeReader] Make sure abbrev records have at least one operand (record code) 2015-05-26 23:52:21 +00:00
invalid-abbrev-vbr-size-too-big.bc Verify sizes when trying to read a BitcodeAbbrevOp 2015-04-23 13:25:35 +00:00
invalid-abbrev.bc Fix testing for end of stream in bitstream reader. 2015-08-03 18:01:50 +00:00
invalid-alias-type-mismatch.bc [BitcodeReader] Diagnose type mismatches with aliases 2015-06-03 01:30:13 +00:00
invalid-align.bc Use common parse routine to read alignment values from bitcode 2015-02-22 19:32:03 +00:00
invalid-array-element-type.bc Make sure that isValidElementType(Type) before calling {Array,Struct}Type::get(Type) 2015-04-29 01:27:01 +00:00
invalid-array-op-not-2nd-to-last.bc Turn an assert into report_fatal_error since it's reachable based on user input 2015-04-29 01:58:31 +00:00
invalid-array-operand-encoding.bc [BitstreamReader] Make sure the Array operand type is an encoding 2015-05-27 00:48:43 +00:00
invalid-array-type.bc Be more strict about the operand for the array type in BitcodeReader 2015-04-23 13:38:21 +00:00
invalid-bad-abbrev-number.bc
invalid-bitwidth.bc
invalid-call-mismatched-explicit-type.bc [opaque pointer type] Explicit pointee type for call instruction 2015-04-17 06:40:14 +00:00
invalid-call-non-function-explicit-type.bc [opaque pointer type] Explicit pointee type for call instruction 2015-04-17 06:40:14 +00:00
invalid-cast.bc Make sure the CastInst is valid before trying to create it 2015-10-06 12:37:54 +00:00
invalid-code-len-width.bc [BitcodeReader] It's a malformed block if CodeLenWidth is too big 2015-05-19 00:34:17 +00:00
invalid-extract-0-indices.bc [BitcodeReader] Don't allow INSERTVAL/EXTRACTVAL with 0 indices 2015-05-16 00:33:12 +00:00
invalid-extractval-array-idx.bc
invalid-extractval-struct-idx.bc
invalid-extractval-too-many-idxs.bc
invalid-fp-shift.bc Have more strict type checks when creating BinOp nodes in BitcodeReader 2015-04-22 09:06:21 +00:00
invalid-function-argument-type.bc [BitcodeReader] Error out if we read an invalid function argument type 2015-05-19 01:21:06 +00:00
invalid-function-comdat-id.bc [BitcodeReader] Sanity check on Comdat ID 2015-05-26 23:00:56 +00:00
invalid-fwdref-type-mismatch-2.bc [BitcodeReader] Change assert to report_fatal_error 2015-05-27 01:05:40 +00:00
invalid-fwdref-type-mismatch.bc Relax an assert when there's a type mismatch in forward references 2015-04-28 20:18:47 +00:00
invalid-gep-mismatched-explicit-type.bc Test bitcode parsing error-handling for incorrect explicit type 2015-03-16 21:35:48 +00:00
invalid-gep-no-operands.bc [BitCode] Diagnose GEPs with no indices 2016-06-05 18:43:26 +00:00
invalid-gep-operator-mismatched-explicit-type.bc Add testing for mismatched explicit type on a gep operator when loading from bitcode 2015-03-16 22:03:50 +00:00
invalid-global-var-comdat-id.bc [BitcodeReader] Sanity check on Comdat ID 2015-05-26 23:00:56 +00:00
invalid-insert-0-indices.bc [BitcodeReader] Don't allow INSERTVAL/EXTRACTVAL with 0 indices 2015-05-16 00:33:12 +00:00
invalid-inserted-value-type-mismatch.bc [BitcodeReader] Make sure the type of the inserted value matches the type of the aggregate at those indices 2015-05-18 22:27:11 +00:00
invalid-insertval-array-idx.bc
invalid-insertval-struct-idx.bc
invalid-insertval-too-many-idxs.bc
invalid-invoke-mismatched-explicit-type.bc [opaque pointer type] bitcode: add explicit callee type to invoke instructions 2015-04-24 18:06:06 +00:00
invalid-invoke-non-function-explicit-type.bc [opaque pointer type] bitcode: add explicit callee type to invoke instructions 2015-04-24 18:06:06 +00:00
invalid-load-mismatched-explicit-type.bc Add testing for mismatched explicit type on a load instruction when loading from bitcode 2015-03-16 21:48:46 +00:00
invalid-load-pointer-type.bc Make sure Op->getType() is a PointerType before we cast<> it. 2015-04-30 01:13:31 +00:00
invalid-load-ptr-type.bc Extract the load/store type verification to a separate function. 2015-05-18 21:48:55 +00:00
invalid-metadata-not-followed-named-node.bc [BitcodeReader] Change an assert to a call to a call to Error() 2015-05-30 00:17:20 +00:00
invalid-name-with-0-byte.bc Error out when faced with value names containing '\0' 2015-11-04 14:53:36 +00:00
invalid-no-function-block.bc Don't assert if materializing before seeing any function bodies 2015-11-03 13:48:26 +00:00
invalid-no-proper-module.bc Error out of ParseBitcodeInto(Module*) if we haven't read a Module 2015-04-14 14:07:15 +00:00
invalid-non-vector-extractelement.bc [BitcodeReader] Fix asserts when we read a non-vector type for insert/extract/shuffle 2015-04-24 11:30:15 +00:00
invalid-non-vector-insertelement.bc [BitcodeReader] Fix asserts when we read a non-vector type for insert/extract/shuffle 2015-04-24 11:30:15 +00:00
invalid-non-vector-shufflevector.bc [BitcodeReader] Fix asserts when we read a non-vector type for insert/extract/shuffle 2015-04-24 11:30:15 +00:00
invalid-nonpointer-atomicrmw.bc [BitCode] Make sure atomicrmw's argument is an actual PointerType 2016-06-05 18:43:40 +00:00
invalid-nonpointer-storeatomic.bc [BitCode] Make sure storeatomic's argument is an actual PointerType 2016-06-05 18:43:33 +00:00
invalid-pointer-element-type.bc Check that we have a valid PointerType element type before calling get() 2015-04-29 02:27:28 +00:00
invalid-pr20485.bc
invalid-too-big-fwdref.bc Make sure we don't resize(0) when we get a fwdref with Idx == UINT_MAX 2015-04-30 00:52:42 +00:00
invalid-type-table-forward-ref.bc
invalid-unexpected-eof.bc
invalid-vector-element-type.bc Make sure that isValidElementType(Type) before calling {Array,Struct}Type::get(Type) 2015-04-29 01:27:01 +00:00
invalid-vector-length.bc [Bitcode] Minimize the test to not conflict with others 2015-06-03 01:30:08 +00:00
invalid-void-constant.bc [BitCode] Don't allow constants of void type. 2016-06-05 18:43:17 +00:00
module_hash.ll Add a module Hash in the bitcode and the combined index, implementing a kind of "build-id" 2016-04-01 05:33:11 +00:00
padding-garbage.bc Improve handling of end of file in the bitcode reader. 2015-06-16 20:03:39 +00:00
padding.bc Add a test for padded bitcode files. 2015-06-16 16:36:15 +00:00
source-filename.bc Restore "[ThinLTO] Use MD5 hash in function index." with fix 2016-02-10 21:55:02 +00:00
thinlto-alias.ll ThinLTO: Make aliases explicit in the summary 2016-04-16 06:56:44 +00:00
thinlto-function-summary-callgraph-combined.1.bc [thinlto] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +00:00
thinlto-function-summary-callgraph-pgo-combined.1.bc [thinlto] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +00:00
thinlto-function-summary-callgraph-pgo.1.bc [thinlto] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +00:00
thinlto-function-summary-callgraph-profile-summary.ll [thinlto] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +00:00
thinlto-function-summary-callgraph.1.bc [thinlto] Basic thinlto fdo heuristic 2016-09-26 20:37:32 +00:00
thinlto-function-summary-callgraph.ll [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00