[SCEV] Use fallthoughs in predicate switch when collecting rewrites for loop guard...
authorDmitry Makogon <d.makogon@g.nsu.ru>
Mon, 6 Mar 2023 11:58:31 +0000 (18:58 +0700)
committerDmitry Makogon <d.makogon@g.nsu.ru>
Tue, 7 Mar 2023 08:59:50 +0000 (15:59 +0700)
llvm/lib/Analysis/ScalarEvolution.cpp

index 5da3aaa..cccf6cb 100644 (file)
@@ -15066,31 +15066,27 @@ const SCEV *ScalarEvolution::applyLoopGuards(const SCEV *Expr, const Loop *L) {
       if (RHS->getType()->isPointerTy())
         break;
       const SCEV *One = getOne(RHS->getType());
-      RewrittenRHS =
-          getUMinExpr(RewrittenLHS, getMinusSCEV(getUMaxExpr(RHS, One), One));
-      break;
+      RHS = getMinusSCEV(getUMaxExpr(RHS, One), One);
+      LLVM_FALLTHROUGH;
     }
-    case CmpInst::ICMP_SLT:
-      RewrittenRHS =
-          getSMinExpr(RewrittenLHS, getMinusSCEV(RHS, getOne(RHS->getType())));
-      break;
     case CmpInst::ICMP_ULE:
       RewrittenRHS = getUMinExpr(RewrittenLHS, RHS);
       break;
+    case CmpInst::ICMP_SLT:
+      RHS = getMinusSCEV(RHS, getOne(RHS->getType()));
+      LLVM_FALLTHROUGH;
     case CmpInst::ICMP_SLE:
       RewrittenRHS = getSMinExpr(RewrittenLHS, RHS);
       break;
     case CmpInst::ICMP_UGT:
-      RewrittenRHS =
-          getUMaxExpr(RewrittenLHS, getAddExpr(RHS, getOne(RHS->getType())));
-      break;
-    case CmpInst::ICMP_SGT:
-      RewrittenRHS =
-          getSMaxExpr(RewrittenLHS, getAddExpr(RHS, getOne(RHS->getType())));
-      break;
+      RHS = getAddExpr(RHS, getOne(RHS->getType()));
+      LLVM_FALLTHROUGH;
     case CmpInst::ICMP_UGE:
       RewrittenRHS = getUMaxExpr(RewrittenLHS, RHS);
       break;
+    case CmpInst::ICMP_SGT:
+      RHS = getAddExpr(RHS, getOne(RHS->getType()));
+      LLVM_FALLTHROUGH;
     case CmpInst::ICMP_SGE:
       RewrittenRHS = getSMaxExpr(RewrittenLHS, RHS);
       break;