From 278f9e7d2789580063a8e03e505c4318eed8a865 Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Sat, 26 Nov 2016 17:58:40 +0000 Subject: [PATCH] [ScopInfo] Use SCEVRewriteVisitor to simplify SCEVSensitiveParameterRewriter [NFC] llvm-svn: 287984 --- polly/lib/Analysis/ScopInfo.cpp | 55 ++--------------------------------------- 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 38daef3..9b15a1d 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -1746,13 +1746,12 @@ void Scop::setContext(__isl_take isl_set *NewContext) { /// Remap parameter values but keep AddRecs valid wrt. invariant loads. struct SCEVSensitiveParameterRewriter - : public SCEVVisitor { + : public SCEVRewriteVisitor { ValueToValueMap &VMap; - ScalarEvolution &SE; public: SCEVSensitiveParameterRewriter(ValueToValueMap &VMap, ScalarEvolution &SE) - : VMap(VMap), SE(SE) {} + : SCEVRewriteVisitor(SE), VMap(VMap) {} static const SCEV *rewrite(const SCEV *E, ScalarEvolution &SE, ValueToValueMap &VMap) { @@ -1760,56 +1759,6 @@ public: return SSPR.visit(E); } - const SCEV *visit(const SCEV *E) { - return SCEVVisitor::visit(E); - } - - const SCEV *visitConstant(const SCEVConstant *E) { return E; } - - const SCEV *visitTruncateExpr(const SCEVTruncateExpr *E) { - return SE.getTruncateExpr(visit(E->getOperand()), E->getType()); - } - - const SCEV *visitZeroExtendExpr(const SCEVZeroExtendExpr *E) { - return SE.getZeroExtendExpr(visit(E->getOperand()), E->getType()); - } - - const SCEV *visitSignExtendExpr(const SCEVSignExtendExpr *E) { - return SE.getSignExtendExpr(visit(E->getOperand()), E->getType()); - } - - const SCEV *visitAddExpr(const SCEVAddExpr *E) { - SmallVector Operands; - for (int i = 0, e = E->getNumOperands(); i < e; ++i) - Operands.push_back(visit(E->getOperand(i))); - return SE.getAddExpr(Operands); - } - - const SCEV *visitMulExpr(const SCEVMulExpr *E) { - SmallVector Operands; - for (int i = 0, e = E->getNumOperands(); i < e; ++i) - Operands.push_back(visit(E->getOperand(i))); - return SE.getMulExpr(Operands); - } - - const SCEV *visitSMaxExpr(const SCEVSMaxExpr *E) { - SmallVector Operands; - for (int i = 0, e = E->getNumOperands(); i < e; ++i) - Operands.push_back(visit(E->getOperand(i))); - return SE.getSMaxExpr(Operands); - } - - const SCEV *visitUMaxExpr(const SCEVUMaxExpr *E) { - SmallVector Operands; - for (int i = 0, e = E->getNumOperands(); i < e; ++i) - Operands.push_back(visit(E->getOperand(i))); - return SE.getUMaxExpr(Operands); - } - - const SCEV *visitUDivExpr(const SCEVUDivExpr *E) { - return SE.getUDivExpr(visit(E->getLHS()), visit(E->getRHS())); - } - const SCEV *visitAddRecExpr(const SCEVAddRecExpr *E) { auto *Start = visit(E->getStart()); auto *AddRec = SE.getAddRecExpr(SE.getConstant(E->getType(), 0), -- 2.7.4