llvm-mirror/test/Transforms/Inline
Chandler Carruth fc1ee5b5d6 Teach the function cloner (and thus the inliner) to simplify PHINodes
aggressively. There are lots of dire warnings about this being expensive
that seem to predate switching to the TrackingVH-based value remapper
that is automatically updated on RAUW. This makes it easy to not just
prune single-entry PHIs, but to fully simplify PHIs, and to recursively
simplify the newly inlined code to propagate PHINode simplifications.

This introduces a bit of a thorny problem though. We may end up
simplifying a branch condition to a constant when we fold PHINodes, and
we would like to nuke any dead blocks resulting from this so that time
isn't wasted continually analyzing them, but this isn't easy. Deleting
basic blocks *after* they are fully cloned and mapped into the new
function currently requires manually updating the value map. The last
piece of the simplification-during-inlining puzzle will require either
switching to WeakVH mappings or some other piece of refactoring. I've
left a FIXME in the testcase about this.

llvm-svn: 153410
2012-03-25 10:34:54 +00:00
..
2003-09-14-InlineValue.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
2003-09-22-PHINodeInlineFail.ll
2003-09-22-PHINodesInExceptionDest.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
2003-09-22-PHINodesInNormalInvokeDest.ll
2003-10-13-AllocaDominanceProblem.ll
2004-04-15-InlineDeletesCall.ll Replace more uses of 'unwind' in the tests with calls to landingpad and 2011-09-19 22:11:35 +00:00
2004-04-20-InlineLinkOnce.ll
2004-10-17-InlineFunctionWithoutReturn.ll Replace more uses of 'unwind' in the tests with calls to landingpad and 2011-09-19 22:11:35 +00:00
2006-01-14-CallGraphUpdate.ll
2006-07-12-InlinePruneCGUpdate.ll
2006-11-09-InlineCGUpdate-2.ll Replace more uses of 'unwind' in the tests with calls to landingpad and 2011-09-19 22:11:35 +00:00
2006-11-09-InlineCGUpdate.ll Replace more uses of 'unwind' in the tests with calls to landingpad and 2011-09-19 22:11:35 +00:00
2007-04-15-InlineEH.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
2007-06-25-WeakInline.ll
2007-12-19-InlineNoUnwind.ll Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
2008-09-02-AlwaysInline.ll
2008-09-02-NoInline.ll
2008-10-30-AlwaysInline.ll
2008-11-04-AlwaysInline.ll
2009-01-08-NoInlineDynamicAlloca.ll
2009-01-13-RecursiveInlineCrash.ll
2009-05-07-CallUsingSelfCrash.ll
2010-05-12-ValueMap.ll
2010-05-31-ByvalTailcall.ll
alloca_test.ll
alloca-bonus.ll Undo a previous restriction on the inline cost calculation which Nick 2012-03-09 02:49:36 +00:00
alloca-in-scc.ll
always_inline_dyn_alloca.ll
array_merge.ll Commit test change, forgotten as part of r131838. 2011-05-22 05:31:47 +00:00
basictest.ll relax testcase a bit. 2011-01-14 07:46:33 +00:00
blockaddress.ll Remap blockaddress correctly when inlining a function. Fixes PR10162. 2011-10-21 20:45:19 +00:00
byval.ll when eliding a byval copy due to inlining a readonly function, we have 2010-12-20 08:10:40 +00:00
callgraph-update.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
casts.ll
cfg_preserve_test.ll
crash2.ll
crash.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
delete-call.ll
devirtualize-2.ll
devirtualize-3.ll
devirtualize.ll
dynamic_alloca_test.ll
externally_available.ll
gvn-inline-iteration.ll
inline_cleanup.ll Teach the function cloner (and thus the inliner) to simplify PHINodes 2012-03-25 10:34:54 +00:00
inline_constprop.ll When inlining a function and adding its inner call sites to the 2012-03-12 11:19:33 +00:00
inline_dce.ll
inline_invoke.ll Update to new EH scheme. 2011-09-02 01:25:11 +00:00
inline_prune.ll
inline_returns_twice.ll Allow inlining of functions with returns_twice calls, if they have the 2011-12-18 20:35:43 +00:00
inline-invoke-tail.ll Remove all references to the old EH. 2012-01-31 02:09:07 +00:00
inline-tail.ll
invoke_test-1.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
invoke_test-2.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
invoke_test-3.ll Update to new EH scheme. 2011-09-01 01:08:21 +00:00
lifetime.ll Teach the inliner to emit llvm.lifetime.start/end, to scope the local variables 2011-05-22 05:22:10 +00:00
lit.local.cfg Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. 2012-02-16 06:28:33 +00:00
nested-inline.ll
noinline-recursive-fn.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
noinline.ll
PR4909.ll
ptr-diff.ll Extend the inline cost calculation to account for bonuses due to 2012-03-14 23:19:53 +00:00