llvm/test/Transforms/IndVarSimplify
Benjamin Kramer b2b2273ef4 Fix SCEV cache invalidation in LCSSA and LoopSimplify.
The LoopSimplify bug is pretty harmless because the loop goes from unanalyzable
to analyzable but the LCSSA bug is very nasty. It only comes into play with a
specific order of the LoopPassManager worklist and can cause actual
miscompilations, when a SCEV refers to a value that has been replaced with PHI
node. SCEVExpander may then insert code into the wrong place, either violating
domination or randomly miscompiling stuff.

Comes with an extensive test case reduced from the test-suite with
bugpoint+SCEVValidator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166787 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-26 17:31:43 +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 Move TargetData to DataLayout. 2012-10-08 16:39:34 +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 Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2005-06-15-InstMoveCrash.ll
2005-11-18-Crash.ll
2006-03-31-NegativeStride.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2006-06-16-Indvar-LCSSA-Crash.ll
2006-09-20-LFTR-Crash.ll
2006-12-10-BitCast.ll
2007-01-06-TripCount.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
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 Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2009-04-15-shorten-iv-vars-2.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2009-04-22-IndvarCrash.ll
2009-04-27-Floating.ll
2009-05-24-useafterfree.ll
2011-09-10-widen-nsw.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +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 Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +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
2012-07-17-lftr-undef.ll indvars: Linear function test replace should avoid reusing undef. 2012-07-18 04:35:10 +00:00
2012-10-19-congruent-constant.ll SCEVExpander: Don't crash when trying to merge two constant phis. 2012-10-19 16:37:30 +00:00
ada-loops.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +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 Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
casted-argument.ll
crash.ll Indvars: Don't recursively delete instruction during BB iteration. 2012-10-19 17:53:54 +00:00
dangling-use.ll
divide-pointer.ll
elim-extend.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
eliminate-comparison.ll
eliminate-max.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
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
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 Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +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 Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
lftr_simple.ll
lftr-other-uses.ll
lftr-promote.ll
lftr-reuse.ll indvars: Linear function test replace should avoid reusing undef. 2012-07-18 04:35:10 +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
loop_evaluate7.ll
loop_evaluate8.ll
loop_evaluate9.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
loop_evaluate10.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
loop_evaluate11.ll
loop_evaluate_1.ll
loop_evaluate_2.ll
loop_evaluate_3.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
loop_evaluate_4.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
loop_evaluate_5.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
loop_evaluate_6.ll
masked-iv.ll
no-iv-rewrite.ll SCEVExpander: Don't crash when trying to merge two constant phis. 2012-10-19 16:37:30 +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-signed-wrap.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
promote-iv-to-eliminate-casts.ll
shrunk-constant.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
signed-trip-count.ll
single-element-range.ll
sink-alloca.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
sink-trapping.ll
tripcount_compute.ll
tripcount_infinite.ll
udiv.ll
uglygep.ll
ult-sub-to-eq.ll Teach SCEV's icmp simplification logic that a-b == 0 is equivalent to a == b. 2012-05-30 18:32:23 +00:00
variable-stride-ivs-0.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
variable-stride-ivs-1.ll
verify-scev.ll Fix SCEV cache invalidation in LCSSA and LoopSimplify. 2012-10-26 17:31:43 +00:00