llvm-project/llvm/test/Transforms/Inline
James Molloy 6bed13c551 [InlineCost] Reduce inline thresholds to compensate for cost changes
In r286814, the algorithm for calculating inline costs changed. This
caused more inlining to take place which is especially apparent
in optsize and minsize modes.

As the cost calculation removed a skewed behaviour (we were inconsistent
about the cost of calls) it isn't possible to update the thresholds to
get exactly the same behaviour as before. However, this threshold change
accounts for the very common case where an inline candidate has no
calls within it. In this case, r286814 would inline around 5-6 more (IR)
instructions.

The changes to -Oz have been heavily benchmarked. The "obvious" value
for the inline threshold at -Oz is zero, but due to inaccuracies in the
inline heuristics this can actually cause code size increases due to
not inlining key thunk functions (that then disappear). Experimentally,
5 was the sweet spot for code size over the test-suite.

For -Os, this change removes the outlier results shown up by green dragon
(http://104.154.54.203/db_default/v4/nts/13248).

Fixes D26848.

llvm-svn: 288024
2016-11-28 11:07:37 +00:00
..
X86 Make an X86 specific directory and put the recent X86 tti specific 2015-07-02 01:36:31 +00:00
2003-09-14-InlineValue.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2003-09-22-PHINodeInlineFail.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2003-09-22-PHINodesInExceptionDest.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2003-09-22-PHINodesInNormalInvokeDest.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2003-10-13-AllocaDominanceProblem.ll
2004-04-15-InlineDeletesCall.ll
2004-04-20-InlineLinkOnce.ll
2004-10-17-InlineFunctionWithoutReturn.ll
2006-01-14-CallGraphUpdate.ll
2006-07-12-InlinePruneCGUpdate.ll
2006-11-09-InlineCGUpdate-2.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2006-11-09-InlineCGUpdate.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2007-04-15-InlineEH.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2007-06-25-WeakInline.ll
2007-12-19-InlineNoUnwind.ll
2008-09-02-NoInline.ll
2009-01-08-NoInlineDynamicAlloca.ll
2009-01-13-RecursiveInlineCrash.ll
2009-05-07-CallUsingSelfCrash.ll
2010-05-12-ValueMap.ll
PR4909.ll [PM] Port PartialInlining to the new PM 2016-06-27 16:50:18 +00:00
align.ll
alloca-bonus.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
alloca-dbgdeclare-merge.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
alloca-dbgdeclare.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
alloca-in-scc.ll
alloca-merge-align.ll Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
alloca_test.ll [Inliner] don't assume that a Constant alloca size is a ConstantInt (PR27277) 2016-05-09 21:51:53 +00:00
always-inline.ll [llvm] Remove redundant --check-prefix=CHECK from tests 2016-10-24 18:57:55 +00:00
array-alloca.ll Fix size computation of array allocation in inline cost analysis 2016-06-27 22:31:53 +00:00
array_merge.ll
attributes.ll Don't inline functions with different SafeStack attributes. 2016-05-10 00:33:07 +00:00
basictest.ll Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
blockaddress.ll ValueMapper: Fix delayed blockaddress handling after r265273 2016-04-06 02:25:12 +00:00
byval-tail-call.ll Reapply 239795 - [InstCombine] Propagate non-null facts to call parameters 2015-06-16 20:24:25 +00:00
byval.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
byval_lifetime.ll
callgraph-update.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
casts.ll
cfg_preserve_test.ll
comdat-ipo.ll Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
crash-lifetime-marker.ll [InlineFunction] Don't add lifetime markers for zero-sized allocas. 2015-04-20 16:11:05 +00:00
crash.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
crash2.ll Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
debug-info-duplicate-calls.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
debug-invoke.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
delete-call.ll
deopt-bundles.ll Nonnull elements in OperandBundleCallSites are not all Instructions 2015-12-19 22:40:28 +00:00
deoptimize-intrinsic-cconv.ll All llvm.deoptimize declarations must use the same calling convention 2016-05-12 01:17:38 +00:00
deoptimize-intrinsic.ll All llvm.deoptimize declarations must use the same calling convention 2016-05-12 01:17:38 +00:00
devirtualize-2.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
devirtualize-3.ll Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
devirtualize.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
dynamic_alloca_test.ll
ephemeral.ll [InlineCost] Reduce inline thresholds to compensate for cost changes 2016-11-28 11:07:37 +00:00
externally_available.ll
frameescape.ll Rename llvm.frameescape and llvm.framerecover to localescape and localrecover 2015-07-07 22:25:32 +00:00
guard-intrinsic.ll Introduce a @llvm.experimental.guard intrinsic 2016-03-31 00:18:46 +00:00
gvn-inline-iteration.ll
ignore-debug-info.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
inalloca-not-static.ll [Inliner] Don't treat inalloca allocas as static 2016-08-12 22:23:04 +00:00
inline-assume.ll [Inline] Use AssumptionCache from the right Function 2015-09-23 15:49:08 +00:00
inline-byval-bonus.ll
inline-cold-callee.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
inline-cold.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
inline-constexpr-addrspacecast-argument.ll Fix assert when inlining a constantexpr addrspacecast 2015-07-27 18:31:03 +00:00
inline-fast-math-flags.ll
inline-fp.ll [InlineCost] Reduce inline thresholds to compensate for cost changes 2016-11-28 11:07:37 +00:00
inline-funclets.ll Fix inliner funclet unwind memoization 2016-09-04 01:23:20 +00:00
inline-hot-callee.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
inline-hot-callsite.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
inline-indirect.ll
inline-invoke-tail.ll Upgrade old memset/memcpy signatures (without isVolatile argument) in tests 2016-06-22 15:16:06 +00:00
inline-invoke-with-asm-call.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
inline-musttail-varargs.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
inline-optnone.ll
inline-optsize.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
inline-tail.ll
inline-threshold.ll Allow -inline-threshold to override default threshold. 2016-05-19 23:02:09 +00:00
inline-vla.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
inline_cleanup.ll
inline_constprop.ll [CloneFunction] Don't remove unrelated nodes from the CGSSC 2016-08-19 16:37:40 +00:00
inline_dbg_declare.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
inline_dce.ll
inline_invoke.ll Sort the enums in Attributes.h in case insensitive alphabetical order. 2015-11-11 02:11:46 +00:00
inline_minisize.ll
inline_prune.ll
inline_returns_twice.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
inline_ssp.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
inline_stats.ll Added ThinLTO inlining statistics 2016-07-29 00:27:16 +00:00
inline_unreachable-2.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
inline_unreachable.ll Avoid inlining call sites in unreachable-terminated block 2016-02-01 20:55:11 +00:00
invoke-cleanup.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
invoke-combine-clauses.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
invoke-cost.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
invoke_test-1.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
invoke_test-2.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
invoke_test-3.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
lifetime-no-datalayout.ll Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
lifetime.ll Inliner: Don't mark swifterror allocas with lifetime markers 2016-09-09 22:40:27 +00:00
local-as-metadata-undominated-use.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
nested-inline.ll
noalias-calls.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
noalias-cs.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
noalias.ll
noalias2.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
noinline-recursive-fn.ll
noinline.ll
nonnull.ll Teach InlineCost to account for a null check which can be folded away 2015-06-26 20:51:17 +00:00
null-function.ll
optimization-remarks-passed-yaml.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
optimization-remarks-with-hotness.ll [Inliner,OptDiag] Add hotness attribute to opt diagnostics 2016-08-10 00:44:44 +00:00
optimization-remarks-yaml.ll [OptDiag] Remove non-printable chars from function name 2016-11-10 17:47:03 +00:00
optimization-remarks.ll [Inliner] Fold the analysis remark into the missed remark 2016-09-27 21:58:17 +00:00
parallel-loop-md.ll [Inliner] Preserve llvm.mem.parallel_loop_access metadata 2016-04-28 23:00:04 +00:00
partial-inline-act.ll Fix : Partial Inliner requires AssumptionCacheTracker 2016-07-25 05:00:00 +00:00
pr21206.ll
pr22285.ll [Inliner] Discard empty COMDAT groups 2015-05-05 20:14:22 +00:00
pr26698.ll [WinEH] Don't inline an 'unwinds to caller' cleanupret into funclets which locally unwind 2016-02-23 17:11:04 +00:00
pr28298.ll Reinstate r273711 2016-06-25 00:04:10 +00:00
profile-meta.ll add checks for 'unpredictable' metadata preservation 2016-03-16 18:15:34 +00:00
ptr-diff.ll [InlineCost] Remove skew when calculating call costs 2016-11-14 11:14:41 +00:00
recursive.ll
store-sroa.ll Correctly estimate SROA savings for store operands in inline cost analysis. 2015-03-20 18:33:12 +00:00
switch.ll
vector-bonus.ll [inliner] Fix the early-exit of the inline cost analysis to correctly 2015-05-27 02:49:05 +00:00
zero-cost.ll Inliner: Do zero-cost inlines even if above a negative threshold (PR24851) 2015-11-10 09:47:48 +00:00