llvm-project/llvm/test/Transforms/SimplifyCFG
Benjamin Kramer d12e82e523 SimplifyCFG: Enhance the "remove CFG edge that leads to null pointer dereference" optimization to also handle instructions with multiple uses.
We conservatively only check the first use to avoid walking long use chains.
This catches the common case of having both a load and a store to a pointer
supplied by a PHI node.

llvm-svn: 165232
2012-10-04 16:11:49 +00:00
..
2002-05-05-EmptyBlockMerge.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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-17-BranchFold.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2003-08-17-BranchFoldOrdering.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
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-12-08-Ptr-ICmp-Branch.ll
2007-11-22-InvokeNoUnwind.ll
2007-12-21-Crash.ll
2008-01-02-hoist-fp-add.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-05-16-PHIBlockMerge.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2008-07-13-InfLoopMiscompile.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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
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
BrUnwind.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
DeadSetCC.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
EqualPHIEdgeBlockMerge.ll
ForwardSwitchConditionToPHI.ll Fix PR10103: Less code for enum type translation. 2011-06-18 10:28:47 +00:00
HoistCode.ll
MagicPointer.ll
PR9946.ll Add test for PR9946. 2011-05-19 02:35:26 +00:00
PhiBlockMerge.ll SimplifyCFG: Add CostRemaining parameter to DominatesMergePoint 2011-04-29 18:47:31 +00:00
PhiBlockMerge2.ll
PhiEliminate.ll
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
PhiNoEliminate.ll
SpeculativeExec.ll Revert r56315. When the instruction to speculate is a load, this 2012-01-05 22:54:35 +00:00
UncondBranchToReturn.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
UnreachableEliminate.ll PR9450: Make switch optimization in SimplifyCFG not dependent on the ordering 2011-03-15 02:23:35 +00:00
basictest.ll
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 Remove dyn_cast + dereference pattern by replacing it with a cast and changing 2012-06-24 10:15:42 +00:00
branch-phi-thread.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +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
duplicate-phis.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +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
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.ll fix PR13339 (remove the predecessor from the unwind BB when removing an invoke) 2012-07-16 22:49:40 +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
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: Enhance the "remove CFG edge that leads to null pointer dereference" optimization to also handle instructions with multiple uses. 2012-10-04 16:11:49 +00:00
preserve-branchweights-partial.ll Remove an incorrect assert during branch weight propagation. 2012-09-08 00:07:26 +00:00
preserve-branchweights-switch-create.ll PGO: preserve branch-weight metadata when merging two switches where 2012-09-14 17:29:56 +00:00
preserve-branchweights.ll PGO: preserve branch-weight metadata when simplifying Switch to a sub, an icmp 2012-09-18 00:47:33 +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
sink-common-code.ll SimplifyCFG: sink common codes from IF, ELSE blocks down to END block. 2012-09-20 22:37:36 +00:00
speculate-with-offset.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
switch_create.ll Build lookup tables for switches (PR884) 2012-09-06 09:43:28 +00:00
switch_switch_fold.ll
switch_thread.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
switch_to_lookup_table.ll SimplifyCFG: Don't crash when forming a switch bitmap with an undef default value. 2012-10-01 11:31:48 +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
unreachable-blocks.ll Make Value::isDereferenceablePointer() handle unreachable code blocks. (This 2012-01-23 00:05:17 +00:00