llvm-6502/test/Transforms/IndVarSimplify
Andrew Trick 4f3052403c Fix an overly general check in SimplifyIndvar to handle useless phi cycles.
The right way to check for a binary operation is
cast<BinaryOperator>. The original check: cast<Instruction> &&
numOperands() == 2 would match phi "instructions", leading to an
infinite loop in extreme corner case: a useless phi with operands
[self, constant] that prior optimization passes failed to remove,
being used in the loop by another useless phi, in turn being used by an
lshr or udiv.

Fixes PR11350: runaway iteration assertion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144935 91177308-0d34-0410-b5e6-96231b3b80d8
2011-11-17 23:36:35 +00:00
..
2002-09-09-PointerIndVar.ll
2003-04-16-ExprAnalysis.ll
2003-09-23-NotAtTop.ll
2003-12-10-RemoveInstrCrash.ll
2003-12-15-Crash.ll
2004-03-10-PHIInsertionBug.ll
2004-04-05-InvokeCastCrash.ll Update to new EH scheme. 2011-09-01 01:02:41 +00:00
2004-04-07-ScalarEvolutionCrash.ll
2005-02-11-InvokeCrash.ll Update to new EH scheme. 2011-09-01 01:02:41 +00:00
2005-02-17-TruncateExprCrash.ll Update to new EH scheme. 2011-09-01 01:02:41 +00:00
2005-02-26-ExitValueCompute.ll
2005-06-15-InstMoveCrash.ll
2005-11-18-Crash.ll
2006-03-31-NegativeStride.ll
2006-06-16-Indvar-LCSSA-Crash.ll
2006-09-20-LFTR-Crash.ll
2006-12-10-BitCast.ll
2007-01-06-TripCount.ll
2007-06-06-DeleteDanglesPtr.ll
2007-11-23-BitcastCrash.ll
2008-06-15-SCEVExpanderBug.ll
2008-09-02-IVType.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
2008-10-03-CouldNotCompute.ll
2008-11-25-APFloatAssert.ll
2009-04-14-shorten_iv_vars.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
2009-04-15-shorten-iv-vars-2.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
2009-04-22-IndvarCrash.ll
2009-04-27-Floating.ll
2009-05-24-useafterfree.ll
2011-09-10-widen-nsw.ll Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change. 2011-09-12 18:28:44 +00:00
2011-09-19-vectoriv.ll [indvars] Fix PR10946: SCEV cannot handle Vector IVs. 2011-09-19 17:54:39 +00:00
2011-09-27-hoistsext.ll Test case for r140670: indvars should hoist sext. 2011-09-28 02:13:32 +00:00
2011-10-27-lftrnull.ll LFTR should avoid a type mismatch with null pointer IVs. 2011-10-28 03:45:11 +00:00
2011-11-01-lftrptr.ll Rewrite LinearFunctionTestReplace to handle pointer-type IVs. 2011-11-02 17:19:57 +00:00
2011-11-15-multiexit.ll Fix SCEV overly optimistic back edge taken count for multi-exit loops. 2011-11-16 00:52:40 +00:00
2011-11-17-selfphi.ll Fix an overly general check in SimplifyIndvar to handle useless phi cycles. 2011-11-17 23:36:35 +00:00
ada-loops.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
addrec-gep.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
ashr-tripcount.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
avoid-i0.ll
casted-argument.ll
complex-scev.ll indvars test only relevant for -enable-iv-rewrite. 2011-09-12 22:59:00 +00:00
crash.ll Update to new EH scheme. 2011-09-01 01:02:41 +00:00
dangling-use.ll
dg.exp
divide-pointer.ll
elim-extend.ll Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change. 2011-09-12 18:28:44 +00:00
eliminate-comparison.ll
eliminate-max.ll
eliminate-rem.ll
exit_value_tests.ll
floating-point-iv.ll Reapply r139759. Disable IV rewriting by default. See PR10916. 2011-09-15 20:58:37 +00:00
gep-with-mul-base.ll Conditionalize indvars test that relies on SCEV expansion of geps, 2011-09-12 23:13:57 +00:00
indirectbr.ll
interesting-invoke-use.ll Update to new EH scheme. 2011-09-01 01:02:41 +00:00
iterationCount_zext_or_trunc.ll
iv-fold.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
iv-sext.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
iv-zext.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
lftr_simple.ll
lftr-other-uses.ll
lftr-promote.ll
lftr-reuse.ll Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change. 2011-09-12 18:28:44 +00:00
loop_evaluate7.ll
loop_evaluate8.ll
loop_evaluate9.ll Fix SCEV overly optimistic back edge taken count for multi-exit loops. 2011-11-16 00:52:40 +00:00
loop_evaluate10.ll Fix SCEV overly optimistic back edge taken count for multi-exit loops. 2011-11-16 00:52:40 +00:00
loop_evaluate11.ll
loop_evaluate_1.ll
loop_evaluate_2.ll
loop_evaluate_3.ll
loop_evaluate_4.ll
loop_evaluate_5.ll
loop_evaluate_6.ll
masked-iv.ll
no-iv-rewrite.ll Move replaceCongruentIVs into SCEVExapander and bias toward "expanded" 2011-10-11 02:28:51 +00:00
phi-uses-value-multiple-times.ll Test case for r130799 - indvars: Added canExpandBackEdgeTakenCount. 2011-05-24 00:17:53 +00:00
polynomial-expand.ll
preserve-gep-loop-variant.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
preserve-gep-nested.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
preserve-gep-remainder.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
preserve-gep.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
preserve-signed-wrap.ll Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change. 2011-09-12 18:28:44 +00:00
promote-iv-to-eliminate-casts.ll
shrunk-constant.ll
signed-trip-count.ll
single-element-range.ll
sink-alloca.ll It is not safe to sink an alloca into a stacksave/stackrestore pair, so don't do that. <rdar://problem/10352360> 2011-10-27 01:33:51 +00:00
sink-trapping.ll
tripcount_compute.ll
tripcount_infinite.ll
udiv.ll
uglygep.ll
variable-stride-ivs-0.ll Rename -disable-iv-rewrite to -enable-iv-rewrite=false in preparation for default change. 2011-09-12 18:28:44 +00:00
variable-stride-ivs-1.ll