[llvm] [LAA] Hoist check for SCEV-uncomputable dist (NFC) (PR #148841)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 16 06:02:19 PDT 2025
https://github.com/artagnon updated https://github.com/llvm/llvm-project/pull/148841
>From 703455cbd8d6ed527d74302ad4aed9e19569a92e Mon Sep 17 00:00:00 2001
From: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: Tue, 15 Jul 2025 13:25:51 +0100
Subject: [PATCH 1/2] [LAA] Hoist check for SCEV-uncomputable dist (NFC)
Hoist the check for SCEVCouldNotCompute distance into
getDependenceDistanceAndSize.
---
llvm/lib/Analysis/LoopAccessAnalysis.cpp | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index f8f741575f87a..54ca9f4089499 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: Dependence because of 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();
>From 6fb910ecfe66964f6372da7a8d668b8e0fb44efc Mon Sep 17 00:00:00 2001
From: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: Wed, 16 Jul 2025 14:01:35 +0100
Subject: [PATCH 2/2] [LAA] Tweak dbg message
---
llvm/lib/Analysis/LoopAccessAnalysis.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index 54ca9f4089499..f3a32d3055edb 100644
--- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
@@ -2087,7 +2087,7 @@ MemoryDepChecker::getDependenceDistanceStrideAndSize(
// If distance is a SCEVCouldNotCompute, return Unknown immediately.
if (isa<SCEVCouldNotCompute>(Dist)) {
- LLVM_DEBUG(dbgs() << "LAA: Dependence because of uncomputable distance.\n");
+ LLVM_DEBUG(dbgs() << "LAA: Uncomputable distance.\n");
return Dependence::Unknown;
}
More information about the llvm-commits
mailing list