summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolution.cpp
diff options
context:
space:
mode:
authorAlexandre Isoard <alexandre.isoard@gmail.com>2017-06-29 18:48:56 +0000
committerAlexandre Isoard <alexandre.isoard@gmail.com>2017-06-29 18:48:56 +0000
commit41044876fcefb5a6917002d679599b7ede6a41bc (patch)
tree7edf2ca5eeaf0a6813d369059f16bb4cf4f6ac57 /llvm/lib/Analysis/ScalarEvolution.cpp
parentcae83f78aa28f40c023892b5a625a55fda12c1d9 (diff)
downloadbcm5719-llvm-41044876fcefb5a6917002d679599b7ede6a41bc.tar.gz
bcm5719-llvm-41044876fcefb5a6917002d679599b7ede6a41bc.zip
Reverting r306695 while investigating failing test case.
Failing test case: Transforms/LoopVectorize.iv_outside_user.ll llvm-svn: 306723
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolution.cpp')
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp26
1 files changed, 0 insertions, 26 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 80bbc8b05e2..73a95ec405c 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -2935,29 +2935,6 @@ const SCEV *ScalarEvolution::getMulExpr(SmallVectorImpl<const SCEV *> &Ops,
return getOrCreateMulExpr(Ops, Flags);
}
-/// Represents an unsigned remainder expression based on unsigned division.
-const SCEV *ScalarEvolution::getURemExpr(const SCEV *LHS,
- const SCEV *RHS) {
- assert(getEffectiveSCEVType(LHS->getType()) ==
- getEffectiveSCEVType(RHS->getType()) &&
- "SCEVURemExpr operand types don't match!");
-
- // TODO:
- // - short circuit '%a = %x urem %x --> 0' (why is it not done for udiv?)
- // - short circuit '%a = %x urem 0 --> %a' (same as for udiv)
- // - update upper-bound and lower-bound cache for the final result
- // (or improve how subtraction is estimated)
-
- // Short-circuit easy cases
- if (const SCEVConstant *RHSC = dyn_cast<SCEVConstant>(RHS))
- if (RHSC->getValue()->equalsInt(1))
- return getZero(LHS->getType()); // X urem 1 --> 0
-
- const SCEV *UDiv = getUDivExpr(LHS, RHS);
- const SCEV *Mult = getMulExpr(UDiv, RHS, SCEV::FlagNUW);
- return getMinusSCEV(LHS, Mult, SCEV::FlagNUW);
-}
-
/// Get a canonical unsigned division expression, or something simpler if
/// possible.
const SCEV *ScalarEvolution::getUDivExpr(const SCEV *LHS,
@@ -4118,7 +4095,6 @@ static Optional<BinaryOp> MatchBinaryOp(Value *V, DominatorTree &DT) {
case Instruction::Sub:
case Instruction::Mul:
case Instruction::UDiv:
- case Instruction::URem:
case Instruction::And:
case Instruction::Or:
case Instruction::AShr:
@@ -5440,8 +5416,6 @@ const SCEV *ScalarEvolution::createSCEV(Value *V) {
}
case Instruction::UDiv:
return getUDivExpr(getSCEV(BO->LHS), getSCEV(BO->RHS));
- case Instruction::URem:
- return getURemExpr(getSCEV(BO->LHS), getSCEV(BO->RHS));
case Instruction::Sub: {
SCEV::NoWrapFlags Flags = SCEV::FlagAnyWrap;
if (BO->Op)
OpenPOWER on IntegriCloud