llvm-6502/test/Transforms/SimplifyCFG
Manman Ren ee28e0fdd1 SimplifyCFG: fold unconditional branch to its predecessor if profitable.
This patch extends FoldBranchToCommonDest to fold unconditional branches.
For unconditional branches, we fold them if it is easy to update the phi nodes 
in the common successors.

rdar://10554090


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158392 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-13 05:43:29 +00:00
..
2002-05-05-EmptyBlockMerge.ll
2002-05-21-PHIElimination.ll
2002-06-24-PHINode.ll
2002-09-24-PHIAssertion.ll
2003-03-07-DominateProblem.ll
2003-08-05-InvokeCrash.ll Update tests to new EH model. Add landingpad instructions to landing pads. 2011-08-29 20:39:23 +00:00
2003-08-05-MishandleInvoke.ll Update tests to new EH model. Add landingpad instructions to landing pads. 2011-08-29 20:39:23 +00:00
2003-08-17-BranchFold.ll
2003-08-17-BranchFoldOrdering.ll
2003-08-17-FoldSwitch-dbg.ll
2003-08-17-FoldSwitch.ll
2004-12-10-SimplifyCFGCrash.ll
2005-06-16-PHICrash.ll
2005-08-01-PHIUpdateFail.ll
2005-10-02-InvokeSimplify.ll Update tests to new EH model. Add landingpad instructions to landing pads. 2011-08-29 20:39:23 +00:00
2005-12-03-IncorrectPHIFold.ll
2006-02-17-InfiniteUnroll.ll
2006-06-12-InfLoop.ll
2006-08-03-Crash.ll Improve the bail-out predicate to really only kick in when phi 2011-04-26 17:41:02 +00:00
2006-10-19-UncondDiv.ll
2006-10-29-InvokeCrash.ll Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
2006-12-08-Ptr-ICmp-Branch.ll
2007-11-22-InvokeNoUnwind.ll
2007-12-21-Crash.ll
2008-01-02-hoist-fp-add.ll
2008-05-16-PHIBlockMerge.ll Fix mistyped CHECK lines. 2011-03-09 22:07:31 +00:00
2008-07-13-InfLoopMiscompile.ll
2008-09-08-MultiplePred.ll
2008-09-17-SpeculativeHoist.ll
2008-10-03-SpeculativelyExecuteBeforePHI.ll
2008-12-06-SingleEntryPhi.ll
2008-12-16-DCECond.ll
2009-01-18-PHIPropCrash.ll
2009-01-19-UnconditionalTrappingConstantExpr.ll Fix SpeculativelyExecuteBB to either speculate all or none of the phis 2012-01-05 23:58:56 +00:00
2009-05-12-externweak.ll
2009-06-15-InvokeCrash.ll Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
2010-03-30-InvokeCrash.ll Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
2011-03-08-UnreachableUse.ll PR9420; an instruction before an unreachable is guaranteed not to have any 2011-03-09 00:48:33 +00:00
2011-09-05-TrivialLPad.ll Delete trivial landing pads that just continue unwinding the caught 2011-09-05 12:57:57 +00:00
basictest.ll Re-apply r124518 with fix. Watch out for invalidated iterator. 2011-01-29 04:46:23 +00:00
branch-cond-merge.ll
branch-cond-prop.ll
branch-fold-dbg.ll Do not let debug info interfer with branch folding. 2011-04-07 23:11:25 +00:00
branch-fold-test.ll
branch-fold.ll SimplifyCFG: fold unconditional branch to its predecessor if profitable. 2012-06-13 05:43:29 +00:00
branch-phi-thread.ll
BrUnwind.ll Try to eliminate the use of the 'unwind' instruction. 2011-09-02 22:41:11 +00:00
dbginfo.ll
dce-cond-after-folding-terminator.ll Add a parameter to ConstantFoldTerminator() that callers can use to ask it to also clean up the condition of any conditional terminator it folds to be unconditional, if that turns the condition into dead code. This just means it calls RecursivelyDeleteTriviallyDeadInstructions() in strategic spots. It defaults to the old behavior. 2011-05-22 16:24:18 +00:00
DeadSetCC.ll
duplicate-phis.ll
EqualPHIEdgeBlockMerge.ll
ForwardSwitchConditionToPHI.ll Fix PR10103: Less code for enum type translation. 2011-06-18 10:28:47 +00:00
hoist-common-code.ll
hoist-dbgvalue.ll While hoisting common code from if/else, hoist debug info intrinsics if they match. 2011-04-07 17:27:36 +00:00
HoistCode.ll
indirectbr.ll If the block that we're threading through is jumped to by an indirect branch, 2011-06-04 09:42:04 +00:00
invoke_unwind.ll Replace more uses of 'unwind' in the tests with calls to landingpad and 2011-09-19 22:11:35 +00:00
iterative-simplify.ll
lifetime.ll Add r134057 back, but splice the predecessor after the successors phi 2011-06-30 20:14:24 +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
MagicPointer.ll Re-apply r124518 with fix. Watch out for invalidated iterator. 2011-01-29 04:46:23 +00:00
multiple-phis.ll Fix SpeculativelyExecuteBB to either speculate all or none of the phis 2012-01-05 23:58:56 +00:00
noreturn-call.ll
phi-undef-loadstore.ll SimplifyCFG: If we have a PHI node that can evaluate to NULL and do a load or store to the address returned by the PHI node then we can consider this incoming value as dead and remove the edge pointing there, unless there are instructions that can affect control flow executed in between. 2011-08-26 01:22:29 +00:00
PhiBlockMerge2.ll
PhiBlockMerge.ll SimplifyCFG: Add CostRemaining parameter to DominatesMergePoint 2011-04-29 18:47:31 +00:00
PhiEliminate2.ll SimplifyCFG: Add Trunc, ZExt and SExt to the list of cheap instructions for phi node folding 2011-04-29 18:47:25 +00:00
PhiEliminate3.ll SimplifyCFG: Expose phi node folding cost threshold as command line parameter 2011-04-29 18:47:38 +00:00
PhiEliminate.ll - Insert new instructions before DomBlock's terminator, 2010-12-14 08:46:09 +00:00
PhiNoEliminate.ll
PR9946.ll Add test for PR9946. 2011-05-19 02:35:26 +00:00
preserve-branchweights.ll FileCheck hygiene. 2012-01-05 00:43:34 +00:00
return-merge.ll
select-gep.ll Fix SpeculativelyExecuteBB to either speculate all or none of the phis 2012-01-05 23:58:56 +00:00
speculate-with-offset.ll
SpeculativeExec.ll Revert r56315. When the instruction to speculate is a load, this 2012-01-05 22:54:35 +00:00
switch_create.ll SimplifyCFG: Track the number of used icmps when turning a icmp chain into a switch. If we used only one icmp, don't turn it into a switch. 2011-02-07 22:37:28 +00:00
switch_switch_fold.ll
switch_thread.ll
switch-masked-bits.ll Fix SpeculativelyExecuteBB to either speculate all or none of the phis 2012-01-05 23:58:56 +00:00
switch-on-const-select.ll Fix SpeculativelyExecuteBB to either speculate all or none of the phis 2012-01-05 23:58:56 +00:00
switch-simplify-crash.ll
switch-to-icmp.ll SimplifyCFG: Track the number of used icmps when turning a icmp chain into a switch. If we used only one icmp, don't turn it into a switch. 2011-02-07 22:37:28 +00:00
trap-debugloc.ll Simplify cfg inserts a call to trap when unreachable code is detected. Assign DebugLoc to this new trap instruction. 2011-04-27 17:59:27 +00:00
trapping-load-unreachable.ll Update SimplifyCFG for atomic operations. 2011-08-15 23:59:28 +00:00
two-entry-phi-return.ll
UncondBranchToReturn.ll
unreachable-blocks.ll Make Value::isDereferenceablePointer() handle unreachable code blocks. (This 2012-01-23 00:05:17 +00:00
UnreachableEliminate.ll PR9450: Make switch optimization in SimplifyCFG not dependent on the ordering 2011-03-15 02:23:35 +00:00