[polly] r271881 - Replace getSCEV with getSCEVAtScope
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 6 03:07:40 PDT 2016
Author: jdoerfert
Date: Mon Jun 6 05:07:40 2016
New Revision: 271881
URL: http://llvm.org/viewvc/llvm-project?rev=271881&view=rev
Log:
Replace getSCEV with getSCEVAtScope
Modified:
polly/trunk/include/polly/Support/SCEVAffinator.h
polly/trunk/lib/Support/SCEVAffinator.cpp
Modified: polly/trunk/include/polly/Support/SCEVAffinator.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/Support/SCEVAffinator.h?rev=271881&r1=271880&r2=271881&view=diff
==============================================================================
--- polly/trunk/include/polly/Support/SCEVAffinator.h (original)
+++ polly/trunk/include/polly/Support/SCEVAffinator.h Mon Jun 6 05:07:40 2016
@@ -90,6 +90,9 @@ private:
/// @brief Target data for element size computing.
const llvm::DataLayout &TD;
+ /// @brief Return the loop for the current block if any.
+ llvm::Loop *getScope();
+
/// @brief Return a PWACtx for @p PWA that is always valid.
__isl_give PWACtx getPWACtxFromPWA(__isl_take isl_pw_aff *PWA);
Modified: polly/trunk/lib/Support/SCEVAffinator.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/SCEVAffinator.cpp?rev=271881&r1=271880&r2=271881&view=diff
==============================================================================
--- polly/trunk/lib/Support/SCEVAffinator.cpp (original)
+++ polly/trunk/lib/Support/SCEVAffinator.cpp Mon Jun 6 05:07:40 2016
@@ -135,6 +135,8 @@ SCEVAffinator::~SCEVAffinator() {
freePWACtx(CachedPair.second);
}
+Loop *SCEVAffinator::getScope() { return BB ? LI.getLoopFor(BB) : nullptr; }
+
void SCEVAffinator::interpretAsUnsigned(__isl_keep PWACtx &PWAC,
unsigned Width) {
auto *PWA = PWAC.first;
@@ -169,7 +171,7 @@ __isl_give PWACtx SCEVAffinator::getPwAf
} else
NumIterators = 0;
- auto *Scope = LI.getLoopFor(BB);
+ auto *Scope = getScope();
S->addParams(getParamsInAffineExpr(&S->getRegion(), Scope, Expr, SE));
return visit(Expr);
@@ -529,14 +531,15 @@ __isl_give PWACtx SCEVAffinator::visitUD
__isl_give PWACtx SCEVAffinator::visitSDivInstruction(Instruction *SDiv) {
assert(SDiv->getOpcode() == Instruction::SDiv && "Assumed SDiv instruction!");
+ auto *Scope = getScope();
auto *Divisor = SDiv->getOperand(1);
- auto *DivisorSCEV = SE.getSCEV(Divisor);
+ auto *DivisorSCEV = SE.getSCEVAtScope(Divisor, Scope);
auto DivisorPWAC = visit(DivisorSCEV);
assert(isa<ConstantInt>(Divisor) &&
"SDiv is no parameter but has a non-constant RHS.");
auto *Dividend = SDiv->getOperand(0);
- auto *DividendSCEV = SE.getSCEV(Dividend);
+ auto *DividendSCEV = SE.getSCEVAtScope(Dividend, Scope);
auto DividendPWAC = visit(DividendSCEV);
combine(DividendPWAC, DivisorPWAC, isl_pw_aff_tdiv_q);
return DividendPWAC;
@@ -551,7 +554,7 @@ __isl_give PWACtx SCEVAffinator::visitSR
/* isSigned */ true);
auto *Dividend = SRem->getOperand(0);
- auto *DividendSCEV = SE.getSCEV(Dividend);
+ auto *DividendSCEV = SE.getSCEVAtScope(Dividend, getScope());
auto DividendPWAC = visit(DividendSCEV);
DividendPWAC.first =
More information about the llvm-commits
mailing list