[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