diff options
author | Johannes Doerfert <doerfert@cs.uni-saarland.de> | 2016-04-12 09:33:47 +0000 |
---|---|---|
committer | Johannes Doerfert <doerfert@cs.uni-saarland.de> | 2016-04-12 09:33:47 +0000 |
commit | 65f86cd8b09b15e6ba531309325750d1a3f4af7c (patch) | |
tree | 02d5a7b9577857dabe9ec1d701aa86faf220c9ba | |
parent | ba45680758d9a8b3bd57526d827e21858882c324 (diff) | |
download | bcm5719-llvm-65f86cd8b09b15e6ba531309325750d1a3f4af7c.tar.gz bcm5719-llvm-65f86cd8b09b15e6ba531309325750d1a3f4af7c.zip |
Simplify SCEVAffinator code [NFC]
llvm-svn: 266051
-rw-r--r-- | polly/lib/Support/SCEVAffinator.cpp | 23 |
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; |