diff options
-rw-r--r-- | lib/Analysis/ScalarEvolution.cpp | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index 375ad5ed70..b73eeab958 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -2905,11 +2905,6 @@ bool ScalarEvolutionsImpl::executesAtLeastOnce(const Loop *L, bool isSigned, return false; } -static bool isNegative(SCEVHandle X) { - if (SCEVConstant *C = dyn_cast<SCEVConstant>(X)) - return C->getValue()->getValue().isNegative(); -} - /// potentialInfiniteLoop - Test whether the loop might jump over the exit value /// due to wrapping around 2^n. bool ScalarEvolutionsImpl::potentialInfiniteLoop(SCEV *Stride, SCEV *RHS, @@ -2967,7 +2962,8 @@ HowManyLessThans(SCEV *LHS, SCEV *RHS, const Loop *L, // the stride is negative, we're not counting how many times 'less-than' is // true as we approach it, we're counting how far away we are from wrapping // around the backside. - if (isSigned && isNegative(Stride)) + if (isSigned && + cast<SCEVConstant>(Stride)->getValue()->getValue().isNegative()) return UnknownValue; // We know the LHS is of the form {n,+,s} and the RHS is some loop-invariant |