From bcc0a0d56059a366c0c0d964fd760ee4bc83809e Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Thu, 17 Nov 2011 12:56:14 +0000 Subject: [PATCH] SCEVValidator: Restructure the logic of visitAddRecExpr Suggested by Sebastian Pop. llvm-svn: 144904 --- polly/lib/Support/SCEVValidator.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/polly/lib/Support/SCEVValidator.cpp b/polly/lib/Support/SCEVValidator.cpp index fd951af4f221..d77e130481e8 100644 --- a/polly/lib/Support/SCEVValidator.cpp +++ b/polly/lib/Support/SCEVValidator.cpp @@ -157,23 +157,23 @@ public: 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) {