[llvm] c0081c1 - [NFC][SCEV] `getRelevantLoop()`: deduplicate handling

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 22 06:49:13 PST 2023


Author: Roman Lebedev
Date: 2023-01-22T17:40:52+03:00
New Revision: c0081c13a0e4b6b12dcbfed8e3f24cb38f62f538

URL: https://github.com/llvm/llvm-project/commit/c0081c13a0e4b6b12dcbfed8e3f24cb38f62f538
DIFF: https://github.com/llvm/llvm-project/commit/c0081c13a0e4b6b12dcbfed8e3f24cb38f62f538.diff

LOG: [NFC][SCEV] `getRelevantLoop()`: deduplicate handling

Added: 
    

Modified: 
    llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
index abb1496c72066..5a0292a9c87e8 100644
--- a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
+++ b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
@@ -684,32 +684,22 @@ const Loop *SCEVExpander::getRelevantLoop(const SCEV *S) {
   case scTruncate:
   case scZeroExtend:
   case scSignExtend:
-  case scPtrToInt: {
-    const SCEVCastExpr *C = cast<SCEVCastExpr>(S);
-    const Loop *Result = getRelevantLoop(C->getOperand());
-    return RelevantLoops[C] = Result;
-  }
-  case scUDivExpr: {
-    const SCEVUDivExpr *D = cast<SCEVUDivExpr>(S);
-    const Loop *Result = PickMostRelevantLoop(
-        getRelevantLoop(D->getLHS()), getRelevantLoop(D->getRHS()), SE.DT);
-    return RelevantLoops[D] = Result;
-  }
+  case scPtrToInt:
   case scAddExpr:
   case scMulExpr:
+  case scUDivExpr:
   case scAddRecExpr:
   case scUMaxExpr:
   case scSMaxExpr:
   case scUMinExpr:
   case scSMinExpr:
   case scSequentialUMinExpr: {
-    const SCEVNAryExpr *N = cast<SCEVNAryExpr>(S);
     const Loop *L = nullptr;
     if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S))
       L = AR->getLoop();
-    for (const SCEV *Op : N->operands())
+    for (const SCEV *Op : S->operands())
       L = PickMostRelevantLoop(L, getRelevantLoop(Op), SE.DT);
-    return RelevantLoops[N] = L;
+    return RelevantLoops[S] = L;
   }
   case scUnknown: {
     const SCEVUnknown *U = cast<SCEVUnknown>(S);


        


More information about the llvm-commits mailing list