llvm-6502/test/Transforms/IndVarSimplify
David Majnemer 5a57dbef33 IndVarSimplify: check if loop invariant expansion can trap
IndVarSimplify is willing to move divide instructions outside of their
loop bodies if they are invariant of the loop.  However, it may not be
safe to expand them if we do not know if they can trap.

Instead, check to see if it is not safe to expand the instruction and
skip the expansion.

This fixes PR16041.

Testcase by Rafael Ávila de Espíndola.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183239 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-04 17:51:58 +00:00
..
2002-09-09-PointerIndVar.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-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
2004-04-07-ScalarEvolutionCrash.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-02-11-InvokeCrash.ll Update to new EH scheme. 2011-09-01 01:02:41 +00:00
2005-02-17-TruncateExprCrash.ll
2005-02-26-ExitValueCompute.ll
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 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-10-BitCast.ll Teach ScalarEvolution how to compute a tripcount for a loop with 2010-02-19 18:12:07 +00:00
2007-01-06-TripCount.ll
2007-06-06-DeleteDanglesPtr.ll
2007-11-23-BitcastCrash.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-06-15-SCEVExpanderBug.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-02-IVType.ll
2008-10-03-CouldNotCompute.ll
2008-11-25-APFloatAssert.ll
2009-04-14-shorten_iv_vars.ll
2009-04-15-shorten-iv-vars-2.ll
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
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
2011-11-01-lftrptr.ll
2011-11-15-multiexit.ll
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
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
ashr-tripcount.ll
avoid-i0.ll
casted-argument.ll
crash.ll
dangling-use.ll
divide-pointer.ll
dont-recompute.ll IndVarSimplify: do not recompute an IV value outside of the loop if : 2013-03-19 20:00:22 +00:00
elim-extend.ll
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
iv-zext.ll Disallow the undocumented practice of starting the datalayout string with '-'. 2012-11-23 14:51:42 +00:00
lftr_simple.ll
lftr-other-uses.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
lftr-promote.ll
lftr-reuse.ll
lit.local.cfg
loop_evaluate7.ll
loop_evaluate8.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
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
loop_evaluate11.ll
loop_evaluate_1.ll
loop_evaluate_2.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
loop_evaluate_3.ll
loop_evaluate_4.ll
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
phi-uses-value-multiple-times.ll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
polynomial-expand.ll
preserve-signed-wrap.ll
promote-iv-to-eliminate-casts.ll
shrunk-constant.ll
signed-trip-count.ll
single-element-range.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
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-invariant-but-traps.ll IndVarSimplify: check if loop invariant expansion can trap 2013-06-04 17:51:58 +00:00
udiv.ll
uglygep.ll
ult-sub-to-eq.ll
variable-stride-ivs-0.ll
variable-stride-ivs-1.ll
verify-scev.ll