hanchenye-llvm-project/llvm/test/Transforms/Inline
Jun Bum Lim 53907161cc Avoid inlining call sites in unreachable-terminated block
Summary:
If the normal destination of the invoke or the parent block of the call site is unreachable-terminated, there is little point in inlining the call site unless there is literally zero cost. Unlike my previous change (D15289), this change specifically handle the call sites followed by unreachable in the same basic block for call or in the normal destination for the invoke. This change could be a reasonable first step to conservatively inline call sites leading to an unreachable-terminated block while BFI / BPI is not yet available in inliner.

Reviewers: manmanren, majnemer, hfinkel, davidxl, mcrosier, dblaikie, eraman

Subscribers: dblaikie, davidxl, mcrosier, llvm-commits

Differential Revision: http://reviews.llvm.org/D16616

llvm-svn: 259403
2016-02-01 20:55:11 +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
align.ll
alloca-bonus.ll
alloca-dbgdeclare-merge.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
alloca-dbgdeclare.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +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
always-inline.ll
array_merge.ll
attributes.ll [Inliner] Merge the attributes of the caller and callee functions 2016-01-13 06:02:45 +00:00
basictest.ll
blockaddress.ll
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
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
debug-info-duplicate-calls.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-invoke.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
delete-call.ll
deopt-bundles.ll Nonnull elements in OperandBundleCallSites are not all Instructions 2015-12-19 22:40:28 +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
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
externally_available.ll
frameescape.ll Rename llvm.frameescape and llvm.framerecover to localescape and localrecover 2015-07-07 22:25:32 +00:00
gvn-inline-iteration.ll
ignore-debug-info.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +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 Determine callee's hotness and adjust threshold based on that. NFC. 2015-12-22 00:32:35 +00:00
inline-cold.ll
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
inline-funclets.ll [Inliner/WinEH] Honor implicit nounwinds 2016-01-20 02:15:15 +00:00
inline-hot-callee.ll Determine callee's hotness and adjust threshold based on that. NFC. 2015-12-22 00:32:35 +00:00
inline-indirect.ll
inline-invoke-tail.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +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 Lower inlining threshold when the caller has minsize attribute. 2016-01-28 23:44:41 +00:00
inline-tail.ll
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
inline_dbg_declare.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +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_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
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.ll
pr21206.ll
pr22285.ll [Inliner] Discard empty COMDAT groups 2015-05-05 20:14:22 +00:00
ptr-diff.ll
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