[llvm] 584158f - [LAA] Hoist check for SCEV-uncomputable dist (NFC) (#148841)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 16 07:30:56 PDT 2025


Author: Ramkumar Ramachandra
Date: 2025-07-16T15:30:53+01:00
New Revision: 584158f9aeac7df66ca08649b8c082883c66b360

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

LOG: [LAA] Hoist check for SCEV-uncomputable dist (NFC) (#148841)

Hoist the check for SCEVCouldNotCompute distance into
getDependenceDistanceAndSize.

Added: 
    

Modified: 
    llvm/lib/Analysis/LoopAccessAnalysis.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index f8f741575f87a..f3a32d3055edb 100644
--- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
@@ -2085,6 +2085,12 @@ MemoryDepChecker::getDependenceDistanceStrideAndSize(
   if (!isa<SCEVConstant>(Dist))
     FoundNonConstantDistanceDependence |= StrideAPtrInt == StrideBPtrInt;
 
+  // If distance is a SCEVCouldNotCompute, return Unknown immediately.
+  if (isa<SCEVCouldNotCompute>(Dist)) {
+    LLVM_DEBUG(dbgs() << "LAA: Uncomputable distance.\n");
+    return Dependence::Unknown;
+  }
+
   return DepDistanceStrideAndSizeInfo(Dist, MaxStride, CommonStride,
                                       TypeByteSize, AIsWrite, BIsWrite);
 }
@@ -2122,13 +2128,6 @@ MemoryDepChecker::isDependent(const MemAccessInfo &A, unsigned AIdx,
       std::get<DepDistanceStrideAndSizeInfo>(Res);
   bool HasSameSize = TypeByteSize > 0;
 
-  if (isa<SCEVCouldNotCompute>(Dist)) {
-    if (CheckCompletelyBeforeOrAfter())
-      return Dependence::NoDep;
-    LLVM_DEBUG(dbgs() << "LAA: Dependence because of uncomputable distance.\n");
-    return Dependence::Unknown;
-  }
-
   ScalarEvolution &SE = *PSE.getSE();
   auto &DL = InnermostLoop->getHeader()->getDataLayout();
 


        


More information about the llvm-commits mailing list