diff --git a/llvm/include/llvm/Analysis/ScalarEvolution.h b/llvm/include/llvm/Analysis/ScalarEvolution.h index f27019bcbf20a..36e4f84f39f6a 100644 --- a/llvm/include/llvm/Analysis/ScalarEvolution.h +++ b/llvm/include/llvm/Analysis/ScalarEvolution.h @@ -437,7 +437,7 @@ class SCEVUnionPredicate final : public SCEVPredicate { /// Returns a reference to a vector containing all predicates which apply to /// \p Expr. - ArrayRef getPredicatesForExpr(const SCEV *Expr); + ArrayRef getPredicatesForExpr(const SCEV *Expr) const; /// Implementation of the SCEVPredicate interface bool isAlwaysTrue() const override; @@ -1176,7 +1176,7 @@ class ScalarEvolution { /// Re-writes the SCEV according to the Predicates in \p A. const SCEV *rewriteUsingPredicate(const SCEV *S, const Loop *L, - SCEVUnionPredicate &A); + const SCEVUnionPredicate &A); /// Tries to convert the \p S expression to an AddRec expression, /// adding additional predicates to \p Preds as required. const SCEVAddRecExpr *convertSCEVToAddRecWithPredicates( diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 86d0bb1249c7f..1b0d92066c156 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -13630,7 +13630,7 @@ class SCEVPredicateRewriter : public SCEVRewriteVisitor { /// \p NewPreds such that the result will be an AddRecExpr. static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE, SmallPtrSetImpl *NewPreds, - SCEVUnionPredicate *Pred) { + const SCEVUnionPredicate *Pred) { SCEVPredicateRewriter Rewriter(L, SE, NewPreds, Pred); return Rewriter.visit(S); } @@ -13682,7 +13682,7 @@ class SCEVPredicateRewriter : public SCEVRewriteVisitor { private: explicit SCEVPredicateRewriter(const Loop *L, ScalarEvolution &SE, SmallPtrSetImpl *NewPreds, - SCEVUnionPredicate *Pred) + const SCEVUnionPredicate *Pred) : SCEVRewriteVisitor(SE), NewPreds(NewPreds), Pred(Pred), L(L) {} bool addOverflowAssumption(const SCEVPredicate *P) { @@ -13727,14 +13727,15 @@ class SCEVPredicateRewriter : public SCEVRewriteVisitor { } SmallPtrSetImpl *NewPreds; - SCEVUnionPredicate *Pred; + const SCEVUnionPredicate *Pred; const Loop *L; }; } // end anonymous namespace -const SCEV *ScalarEvolution::rewriteUsingPredicate(const SCEV *S, const Loop *L, - SCEVUnionPredicate &Preds) { +const SCEV * +ScalarEvolution::rewriteUsingPredicate(const SCEV *S, const Loop *L, + const SCEVUnionPredicate &Preds) { return SCEVPredicateRewriter::rewrite(S, L, *this, nullptr, &Preds); } @@ -13861,7 +13862,7 @@ bool SCEVUnionPredicate::isAlwaysTrue() const { } ArrayRef -SCEVUnionPredicate::getPredicatesForExpr(const SCEV *Expr) { +SCEVUnionPredicate::getPredicatesForExpr(const SCEV *Expr) const { auto I = SCEVToPreds.find(Expr); if (I == SCEVToPreds.end()) return ArrayRef();