[llvm] r306723 - Reverting r306695 while investigating failing test case.

Alexandre Isoard via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 29 11:48:57 PDT 2017


Author: aisoard
Date: Thu Jun 29 11:48:56 2017
New Revision: 306723

URL: http://llvm.org/viewvc/llvm-project?rev=306723&view=rev
Log:
Reverting r306695 while investigating failing test case.

Failing test case:
    Transforms/LoopVectorize.iv_outside_user.ll


Removed:
    llvm/trunk/test/Analysis/ScalarEvolution/flattened.ll
    llvm/trunk/test/Analysis/ScalarEvolution/urem-0.ll
Modified:
    llvm/trunk/include/llvm/Analysis/ScalarEvolution.h
    llvm/trunk/lib/Analysis/ScalarEvolution.cpp

Modified: llvm/trunk/include/llvm/Analysis/ScalarEvolution.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ScalarEvolution.h?rev=306723&r1=306722&r2=306723&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Analysis/ScalarEvolution.h (original)
+++ llvm/trunk/include/llvm/Analysis/ScalarEvolution.h Thu Jun 29 11:48:56 2017
@@ -1244,7 +1244,6 @@ public:
   }
   const SCEV *getUDivExpr(const SCEV *LHS, const SCEV *RHS);
   const SCEV *getUDivExactExpr(const SCEV *LHS, const SCEV *RHS);
-  const SCEV *getURemExpr(const SCEV *LHS, const SCEV *RHS);
   const SCEV *getAddRecExpr(const SCEV *Start, const SCEV *Step, const Loop *L,
                             SCEV::NoWrapFlags Flags);
   const SCEV *getAddRecExpr(SmallVectorImpl<const SCEV *> &Operands,

Modified: llvm/trunk/lib/Analysis/ScalarEvolution.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolution.cpp?rev=306723&r1=306722&r2=306723&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/ScalarEvolution.cpp (original)
+++ llvm/trunk/lib/Analysis/ScalarEvolution.cpp Thu Jun 29 11:48:56 2017
@@ -2935,29 +2935,6 @@ const SCEV *ScalarEvolution::getMulExpr(
   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(
   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(
     }
     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)

Removed: llvm/trunk/test/Analysis/ScalarEvolution/flattened.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/ScalarEvolution/flattened.ll?rev=306722&view=auto
==============================================================================
--- llvm/trunk/test/Analysis/ScalarEvolution/flattened.ll (original)
+++ llvm/trunk/test/Analysis/ScalarEvolution/flattened.ll (removed)
@@ -1,22 +0,0 @@
-; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s
-
-
-define void @foo([7 x i8]* %a) {
-entry:
-	br label %bb
-
-bb:
-	%idx = phi i64 [ 0, %entry ], [ %idx.incr, %bb ]
-	%i = udiv i64 %idx, 7
-	%j = urem i64 %idx, 7
-	%a.ptr = getelementptr [7 x i8], [7 x i8]* %a, i64 %i, i64 %j
-; CHECK: %a.ptr
-; CHECK-NEXT: -->  {%a,+,1}<nw><%bb>
-	%val = load i8, i8* %a.ptr
-	%idx.incr = add i64 %idx, 1
-	%test = icmp ne i64 %idx.incr, 35
-	br i1 %test, label %bb, label %exit
-
-exit:
-	ret void
-}

Removed: llvm/trunk/test/Analysis/ScalarEvolution/urem-0.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Analysis/ScalarEvolution/urem-0.ll?rev=306722&view=auto
==============================================================================
--- llvm/trunk/test/Analysis/ScalarEvolution/urem-0.ll (original)
+++ llvm/trunk/test/Analysis/ScalarEvolution/urem-0.ll (removed)
@@ -1,15 +0,0 @@
-; RUN: opt < %s -scalar-evolution -analyze | FileCheck %s
-
-define i8 @foo(i8 %a) {
-        %t0 = urem i8 %a, 27
-; CHECK: %t0
-; CHECK-NEXT: -->  ((-27 * (%a /u 27)) + %a)
-        ret i8 %t0
-}
-
-define i8 @bar(i8 %a) {
-        %t1 = urem i8 %a, 1
-; CHECK: %t1
-; CHECK-NEXT: -->  0
-        ret i8 %t1
-}




More information about the llvm-commits mailing list