llvm-project/llvm/test/Analysis/ScalarEvolution
Nick Lewycky 1c451ae43e Add a utility function that detects whether a loop is guaranteed to be finite.
Use it to safely handle less-than-or-equals-to exit conditions in loops. These
also occur when the loop exit branch is exit on true because SCEV inverses the
icmp predicate.

Use it again to handle non-zero strides, but only with an unsigned comparison
in the exit condition.

llvm-svn: 59528
2008-11-18 15:10:54 +00:00
..
2007-07-15-NegativeStride.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
2007-08-06-MisinterpretBranch.ll Fix the dates on these tests. It's not September yet. Thanks Reid! 2007-08-06 20:00:11 +00:00
2007-08-06-Unsigned.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
2007-09-27-LargeStepping.ll While testing particular algorithms to compute loop iteration count the brute 2008-07-19 13:26:15 +00:00
2007-11-14-SignedAddRec.ll Fix PR1798 - an error in the evaluation of SCEVAddRecExpr at an 2008-02-11 11:03:14 +00:00
2007-11-18-OrInstruction.ll Now that ScalarEvolution::print writes to the correct stream, there is 2008-02-12 15:12:40 +00:00
2008-02-11-ReversedCondition.ll Finally re-apply r46959. This is made feasible by the combination 2008-09-16 18:52:57 +00:00
2008-02-12-SMAXTripCount.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
2008-02-15-UMax.ll Add 'umax' similar to 'smax' SCEV. Closes PR2003. 2008-02-20 06:48:22 +00:00
2008-05-25-NegativeStepToZero.ll Fix PR2088. Use modulo linear equation solver to compute loop iteration 2008-07-20 15:55:14 +00:00
2008-06-12-BinomialInt64.ll Crash less. The i64 restriction in BinomialCoefficient caused some problems 2008-06-13 04:38:55 +00:00
2008-07-12-UnneededSelect1.ll Stop creating extraneous smax/umax in SCEV. This removes a regression where we 2008-07-12 07:41:32 +00:00
2008-07-12-UnneededSelect2.ll Stop creating extraneous smax/umax in SCEV. This removes a regression where we 2008-07-12 07:41:32 +00:00
2008-07-19-InfiniteLoop.ll Fix PR2088. Use modulo linear equation solver to compute loop iteration 2008-07-20 15:55:14 +00:00
2008-07-19-WrappingIV.ll Fix PR2088. Use modulo linear equation solver to compute loop iteration 2008-07-20 15:55:14 +00:00
2008-07-29-SGTTripCount.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
2008-07-29-SMinExpr.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
2008-08-04-IVOverflow.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
2008-08-04-LongAddRec.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
2008-11-02-QuadraticCrash.ll Don't crash analyzing certain quadratics (addrec of {X,+,Y,+,1}). 2008-11-03 02:43:49 +00:00
2008-11-15-CubicOOM.ll Don't brute-force analyze cubic or higher polynomials. 2008-11-16 04:14:25 +00:00
2008-11-18-LessThanOrEqual.ll Add a utility function that detects whether a loop is guaranteed to be finite. 2008-11-18 15:10:54 +00:00
2008-11-18-Stride1.ll Add a utility function that detects whether a loop is guaranteed to be finite. 2008-11-18 15:10:54 +00:00
2008-11-18-Stride2.ll Add a utility function that detects whether a loop is guaranteed to be finite. 2008-11-18 15:10:54 +00:00
SolveQuadraticEquation.ll While testing particular algorithms to compute loop iteration count the brute 2008-07-19 13:26:15 +00:00
avoid-smax-0.ll Teach ScalarEvolution to consider loop preheaders in the search for 2008-09-15 22:18:04 +00:00
avoid-smax-1.ll Finally re-apply r46959. This is made feasible by the combination 2008-09-16 18:52:57 +00:00
dg.exp For PR1319: 2007-04-15 09:31:07 +00:00
do-loop.ll Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops. 2007-11-25 22:41:31 +00:00
smax.ll Fix WriteAsOperand to not emit a leading space character. Adjust 2008-09-14 17:21:12 +00:00
trip-count.ll While testing particular algorithms to compute loop iteration count the brute 2008-07-19 13:26:15 +00:00
trip-count2.ll Now that ScalarEvolution::print writes to the correct stream, there is 2008-02-12 15:12:40 +00:00