llvm-6502/test/Analysis/ScalarEvolution
Dan Gohman 52fddd3e36 Fix the the ceiling-division used in computing the MaxBECount so that it doesn't
have trouble with an intermediate add overflowing. Also, be more conservative
about the case where the induction variable in an SLT loop exit can step past
the RHS of the SLT and overflow in a single step.

Make getSignedRange more aggressive, to recover for some common cases which
the above fixes pessimized.

This addresses rdar://7561161.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94512 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26 04:40:18 +00:00
..
2007-07-15-NegativeStride.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
2007-08-06-MisinterpretBranch.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-08-06-Unsigned.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
2007-09-27-LargeStepping.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-14-SignedAddRec.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-18-OrInstruction.ll Convert Analysis tests to FileCheck in regards to PR5307. 2009-10-27 14:54:46 +00:00
2008-02-11-ReversedCondition.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
2008-02-12-SMAXTripCount.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
2008-02-15-UMax.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-05-25-NegativeStepToZero.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-12-BinomialInt64.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-12-UnneededSelect1.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-12-UnneededSelect2.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-19-InfiniteLoop.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-19-WrappingIV.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-29-SGTTripCount.ll Convert Analysis tests to FileCheck in regards to PR5307. 2009-10-27 14:54:46 +00:00
2008-07-29-SMinExpr.ll Convert Analysis tests to FileCheck in regards to PR5307. 2009-10-27 14:54:46 +00:00
2008-08-04-IVOverflow.ll Convert Analysis tests to FileCheck in regards to PR5307. 2009-10-27 14:54:46 +00:00
2008-08-04-LongAddRec.ll Convert Analysis tests to FileCheck in regards to PR5307. 2009-10-27 14:54:46 +00:00
2008-11-02-QuadraticCrash.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-11-15-CubicOOM.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-11-18-LessThanOrEqual.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
2008-11-18-Stride1.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
2008-11-18-Stride2.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-08-FiniteSGE.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-11-SMaxOverflow.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-14-StrideAndSigned.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-15-DontUseSDiv.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-02-SignedNegativeStride.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-04-22-TruncCast.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-05-09-PointerEdgeCount.ll Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test 2009-11-03 15:29:06 +00:00
2009-07-04-GroupConstantsWidthMismatch.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
and-xor.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
avoid-infinite-recursion-0.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
avoid-infinite-recursion-1.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
avoid-smax-0.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
avoid-smax-1.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
div-overflow.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
do-loop.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
max-trip-count.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
nsw-offset.ll Fix the the ceiling-division used in computing the MaxBECount so that it doesn't 2010-01-26 04:40:18 +00:00
nsw.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
pointer-sign-bits.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
pr3909.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
scev-aa.ll Add a comment about A[i+(j+1)]. 2009-12-01 01:38:10 +00:00
sext-inreg.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
sext-iv-0.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
sext-iv-1.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
sext-iv-2.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
smax.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
SolveQuadraticEquation.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
trip-count2.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
trip-count3.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
trip-count4.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
trip-count5.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
trip-count6.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
trip-count7.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
trip-count8.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00
trip-count9.ll Fix the the ceiling-division used in computing the MaxBECount so that it doesn't 2010-01-26 04:40:18 +00:00
trip-count.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
xor-and.ll Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
zext-wrap.ll Use WriteAsOperand instead of getName() to print loop header names, 2010-01-09 18:17:45 +00:00