1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test/Transforms/Inline
James Molloy d523d136d2 [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
2003-09-14-InlineValue.ll
2003-09-22-PHINodeInlineFail.ll
2003-09-22-PHINodesInExceptionDest.ll
2003-09-22-PHINodesInNormalInvokeDest.ll
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
2006-11-09-InlineCGUpdate.ll
2007-04-15-InlineEH.ll
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
align.ll
alloca_test.ll [Inliner] don't assume that a Constant alloca size is a ConstantInt (PR27277) 2016-05-09 21:51:53 +00:00
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
always-inline.ll [llvm] Remove redundant --check-prefix=CHECK from tests 2016-10-24 18:57:55 +00:00
array_merge.ll
array-alloca.ll Fix size computation of array allocation in inline cost analysis 2016-06-27 22:31:53 +00:00
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_lifetime.ll
byval-tail-call.ll
byval.ll
callgraph-update.ll
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
crash2.ll Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
crash-lifetime-marker.ll
crash.ll
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
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
devirtualize-3.ll Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
devirtualize.ll
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
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_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
inline_minisize.ll
inline_prune.ll
inline_returns_twice.ll
inline_ssp.ll
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
inline-assume.ll
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
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
inline-musttail-varargs.ll
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
invoke_test-1.ll
invoke_test-2.ll
invoke_test-3.ll
invoke-cleanup.ll
invoke-combine-clauses.ll
invoke-cost.ll
lifetime-no-datalayout.ll
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
noalias2.ll
noalias-calls.ll
noalias-cs.ll
noalias.ll
noinline-recursive-fn.ll
noinline.ll
nonnull.ll
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
pr26698.ll
pr28298.ll Reinstate r273711 2016-06-25 00:04:10 +00:00
PR4909.ll [PM] Port PartialInlining to the new PM 2016-06-27 16:50:18 +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
switch.ll
vector-bonus.ll
zero-cost.ll