llvm/test/Transforms/SimplifyCFG
Dan Gohman 4d70a29490 Factor out Instruction::isSafeToSpeculativelyExecute's code for
testing for dereferenceable pointers into a helper function,
isDereferenceablePointer.  Teach it how to reason about GEPs
with simple non-zero indices.

Also eliminate ArgumentPromtion's IsAlwaysValidPointer,
which didn't check for weak externals or out of range gep
indices.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118840 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-11 21:23:25 +00:00
..
2002-05-05-EmptyBlockMerge.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2002-05-21-PHIElimination.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2002-06-24-PHINode.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
2002-09-24-PHIAssertion.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-03-07-DominateProblem.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-08-05-InvokeCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-08-05-MishandleInvoke.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-08-17-BranchFold.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-08-17-BranchFoldOrdering.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2003-08-17-FoldSwitch-dbg.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
2003-08-17-FoldSwitch.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2004-12-10-SimplifyCFGCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2005-06-16-PHICrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2005-08-01-PHIUpdateFail.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2005-08-03-PHIFactorCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2005-10-02-InvokeSimplify.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2005-12-03-IncorrectPHIFold.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-02-17-InfiniteUnroll.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-06-12-InfLoop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-08-03-Crash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-10-19-UncondDiv.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-10-29-InvokeCrash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2006-12-08-Ptr-ICmp-Branch.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-11-22-InvokeNoUnwind.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2007-12-21-Crash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-01-02-hoist-fp-add.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-04-23-MergeMultipleResultRet.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-04-27-MultipleReturnCrash.ll Correct bogus module triple specifications. 2010-08-30 10:48:29 +00:00
2008-05-16-PHIBlockMerge.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-07-13-InfLoopMiscompile.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-09-08-MultiplePred.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-09-17-SpeculativeHoist.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-10-03-SpeculativelyExecuteBeforePHI.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-12-06-SingleEntryPhi.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2008-12-16-DCECond.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-01-18-PHIPropCrash.ll Optimize test more. 2009-11-10 21:02:18 +00:00
2009-01-19-UnconditionalTrappingConstantExpr.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-03-05-Speculative-Hoist-Dbg.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
2009-05-12-externweak.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
2009-06-15-InvokeCrash.ll Floating-point add, sub, and mul are now spelled fadd, fsub, and fmul, 2010-03-02 01:11:08 +00:00
2010-03-30-InvokeCrash.ll testcase for r99914, provided by baldrick! 2010-03-31 20:37:13 +00:00
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 Teach SimplifyCFG how to simplify indirectbr instructions. 2010-08-14 00:29:42 +00:00
branch_fold_dbg.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
branch-branch-dbginfo.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
branch-cond-merge.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
branch-cond-prop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
branch-fold-test.ll
branch-fold.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
branch-phi-thread.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
BrUnwind.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
dbginfo.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
DeadSetCC.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
dg.exp
duplicate-phis.ll fix two bogus tests that the asmparser now rejects. 2009-12-30 05:54:51 +00:00
EqualPHIEdgeBlockMerge.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
hoist-common-code.dbg.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
hoist-common-code.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
HoistCode.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
indirectbr.ll Instead, teach SimplifyCFG to trim non-address-taken blocks from 2010-08-16 14:41:14 +00:00
invoke_unwind.ll change simplifycfg to not duplicate 'unwind' instructions. Hopefully 2009-10-13 18:13:05 +00:00
iterative-simplify.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
MagicPointer.ll Teach SimplifyCFG about magic pointer constants. 2010-02-05 22:03:18 +00:00
noreturn-call.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
PhiBlockMerge2.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
PhiBlockMerge.ll Revert r85667. LoopUnroll currently can't call utility functions which 2009-10-31 17:33:01 +00:00
PhiEliminate2.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
PhiEliminate.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
PhiNoEliminate.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
return-merge.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
speculate-with-offset.ll Factor out Instruction::isSafeToSpeculativelyExecute's code for 2010-11-11 21:23:25 +00:00
SpeculativeExec.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
switch_create.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
switch_formation.dbg.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
switch_formation.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
switch_switch_fold_dbginfo.ll
switch_switch_fold.ll
switch_thread.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
switch-simplify-crash.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
trapping-load-unreachable.ll Test case for r105914. 2010-06-13 16:16:54 +00:00
two-entry-phi-return.dbg.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
two-entry-phi-return.ll fix a bunch of spurious failures for people whose home directory 2009-09-11 17:02:12 +00:00
UncondBranchToReturn.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
UnreachableEliminate.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00