llvm-6502/test/Transforms/SimplifyCFG
Benjamin Kramer 56442dfdcf SimplifyCFG: Turn switches into sub+icmp+branch if possible.
This makes the job of the later optzn passes easier, allowing the vast amount of
icmp transforms to chew on it.

We transform 840 switches in gcc.c, leading to a 16k byte shrink of the resulting
binary on i386-linux.

The testcase from README.txt now compiles into
  decl  %edi
  cmpl  $3, %edi
  sbbl  %eax, %eax
  andl  $1, %eax
  ret

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124724 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02 15:56:22 +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
2003-08-05-MishandleInvoke.ll
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-08-03-PHIFactorCrash.ll
2005-10-02-InvokeSimplify.ll
2005-12-03-IncorrectPHIFold.ll
2006-02-17-InfiniteUnroll.ll
2006-06-12-InfLoop.ll
2006-08-03-Crash.ll
2006-10-19-UncondDiv.ll
2006-10-29-InvokeCrash.ll
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-04-23-MergeMultipleResultRet.ll
2008-04-27-MultipleReturnCrash.ll Correct bogus module triple specifications. 2010-08-30 10:48:29 +00:00
2008-05-16-PHIBlockMerge.ll
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
2009-03-05-Speculative-Hoist-Dbg.ll
2009-05-12-externweak.ll
2009-06-15-InvokeCrash.ll
2010-03-30-InvokeCrash.ll
2010-10-24-OnlyUnwindInEntry.ll Fix PR8445: a block with no predecessors may be the entry block, in which case 2010-10-24 12:23:30 +00:00
basictest.ll Re-apply r124518 with fix. Watch out for invalidated iterator. 2011-01-29 04:46:23 +00:00
branch_fold_dbg.ll
branch-branch-dbginfo.ll
branch-cond-merge.ll
branch-cond-prop.ll
branch-fold-test.ll
branch-fold.ll
branch-phi-thread.ll
BrUnwind.ll
dbginfo.ll
DeadSetCC.ll
dg.exp
duplicate-phis.ll
EqualPHIEdgeBlockMerge.ll
hoist-common-code.dbg.ll
hoist-common-code.ll
HoistCode.ll
indirectbr.ll Teach SimplifyCFG to turn 2010-12-05 18:29:03 +00:00
invoke_unwind.ll make these tests a bit less fragile 2010-12-13 05:10:30 +00:00
iterative-simplify.ll
MagicPointer.ll Re-apply r124518 with fix. Watch out for invalidated iterator. 2011-01-29 04:46:23 +00:00
noreturn-call.ll
PhiBlockMerge2.ll
PhiBlockMerge.ll fix two significant issues with FoldTwoEntryPHINode: 2010-12-14 08:01:53 +00:00
PhiEliminate2.ll
PhiEliminate.ll - Insert new instructions before DomBlock's terminator, 2010-12-14 08:46:09 +00:00
PhiNoEliminate.ll
return-merge.ll
speculate-with-offset.ll Factor out Instruction::isSafeToSpeculativelyExecute's code for 2010-11-11 21:23:25 +00:00
SpeculativeExec.ll
switch_create.ll SimplifyCFG: Turn switches into sub+icmp+branch if possible. 2011-02-02 15:56:22 +00:00
switch_formation.dbg.ll SimplifyCFG: Turn switches into sub+icmp+branch if possible. 2011-02-02 15:56:22 +00:00
switch_switch_fold_dbginfo.ll
switch_switch_fold.ll
switch_thread.ll
switch-simplify-crash.ll
trapping-load-unreachable.ll
two-entry-phi-return.dbg.ll
two-entry-phi-return.ll
UncondBranchToReturn.ll
UnreachableEliminate.ll