SCEVValidator: Restructure the logic of visitAddRecExpr

Suggested by Sebastian Pop.

llvm-svn: 144904
diff --git a/polly/lib/Support/SCEVValidator.cpp b/polly/lib/Support/SCEVValidator.cpp
index fd951af..d77e130 100644
--- a/polly/lib/Support/SCEVValidator.cpp
+++ b/polly/lib/Support/SCEVValidator.cpp
@@ -157,23 +157,23 @@
     ValidatorResult Start = visit(Expr->getStart());
     ValidatorResult Recurrence = visit(Expr->getStepRecurrence(SE));
 
-    if (!Start.isValid() || !Recurrence.isValid() || Recurrence.isIV())
+    if (!Start.isValid() || !Recurrence.isConstant())
       return ValidatorResult(SCEVType::INVALID);
 
+    if (R->contains(Expr->getLoop())) {
+      if (Recurrence.isINT()) {
+        ValidatorResult Result(SCEVType::IV);
+        Result.addParamsFrom(Start);
+        return Result;
+      }
 
-    if (!R->contains(Expr->getLoop())) {
-      if (Start.isIV())
-        return ValidatorResult(SCEVType::INVALID);
-      else
-        return ValidatorResult(SCEVType::PARAM, Expr);
+      return ValidatorResult(SCEVType::INVALID);
     }
 
-    if (!Recurrence.isINT())
-      return ValidatorResult(SCEVType::INVALID);
+    if (Start.isConstant())
+      return ValidatorResult(SCEVType::PARAM, Expr);
 
-    ValidatorResult Result(SCEVType::IV);
-    Result.addParamsFrom(Start);
-    return Result;
+    return ValidatorResult(SCEVType::INVALID);
   }
 
   struct ValidatorResult visitSMaxExpr(const SCEVSMaxExpr *Expr) {