summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Doerfert <doerfert@cs.uni-saarland.de>2016-04-12 09:33:47 +0000
committerJohannes Doerfert <doerfert@cs.uni-saarland.de>2016-04-12 09:33:47 +0000
commit65f86cd8b09b15e6ba531309325750d1a3f4af7c (patch)
tree02d5a7b9577857dabe9ec1d701aa86faf220c9ba
parentba45680758d9a8b3bd57526d827e21858882c324 (diff)
downloadbcm5719-llvm-65f86cd8b09b15e6ba531309325750d1a3f4af7c.tar.gz
bcm5719-llvm-65f86cd8b09b15e6ba531309325750d1a3f4af7c.zip
Simplify SCEVAffinator code [NFC]
llvm-svn: 266051
-rw-r--r--polly/lib/Support/SCEVAffinator.cpp23
1 files changed, 8 insertions, 15 deletions
diff --git a/polly/lib/Support/SCEVAffinator.cpp b/polly/lib/Support/SCEVAffinator.cpp
index e1520c8d284..f2db2dd18eb 100644
--- a/polly/lib/Support/SCEVAffinator.cpp
+++ b/polly/lib/Support/SCEVAffinator.cpp
@@ -51,6 +51,13 @@ static bool isToComplex(isl_pw_aff *PWA) {
return true;
}
+/// @brief Return the flag describing the possible wrapping of @p Expr.
+static SCEV::NoWrapFlags getNoWrapFlags(const SCEV *Expr) {
+ if (auto *NAry = dyn_cast<SCEVNAryExpr>(Expr))
+ return NAry->getNoWrapFlags();
+ return SCEV::NoWrapMask;
+}
+
SCEVAffinator::SCEVAffinator(Scop *S, LoopInfo &LI)
: S(S), Ctx(S->getIslCtx()), R(S->getRegion()), SE(*S->getSE()), LI(LI),
TD(R.getEntry()->getParent()->getParent()->getDataLayout()) {}
@@ -112,21 +119,7 @@ __isl_give isl_set *SCEVAffinator::getWrappingContext() const {
for (const auto &CachedPair : CachedExpressions) {
const SCEV *Expr = CachedPair.first.first;
- SCEV::NoWrapFlags Flags;
-
- switch (Expr->getSCEVType()) {
- case scAddExpr:
- Flags = cast<SCEVAddExpr>(Expr)->getNoWrapFlags();
- break;
- case scMulExpr:
- Flags = cast<SCEVMulExpr>(Expr)->getNoWrapFlags();
- break;
- case scAddRecExpr:
- Flags = cast<SCEVAddRecExpr>(Expr)->getNoWrapFlags();
- break;
- default:
- continue;
- }
+ SCEV::NoWrapFlags Flags = getNoWrapFlags(Expr);
isl_pw_aff *PWA = CachedPair.second;
BasicBlock *BB = CachedPair.first.second;
OpenPOWER on IntegriCloud