[llvm] [DA] Address followup comments on #128782 (PR #162645)

Ryotaro Kasuga via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 10 05:29:05 PDT 2025


https://github.com/kasuga-fj updated https://github.com/llvm/llvm-project/pull/162645

>From 1d313abdaae3a097478d52221637803de0e965ee Mon Sep 17 00:00:00 2001
From: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: Thu, 9 Oct 2025 12:10:10 +0000
Subject: [PATCH 1/3] fix variable name

---
 .../llvm/Analysis/DependenceAnalysis.h        |  8 ++---
 llvm/lib/Analysis/DependenceAnalysis.cpp      | 30 +++++++++----------
 2 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/llvm/include/llvm/Analysis/DependenceAnalysis.h b/llvm/include/llvm/Analysis/DependenceAnalysis.h
index a2ca695d5f750..18a8f8aabb44a 100644
--- a/llvm/include/llvm/Analysis/DependenceAnalysis.h
+++ b/llvm/include/llvm/Analysis/DependenceAnalysis.h
@@ -160,7 +160,7 @@ class LLVM_ABI Dependence {
 
   /// getDVEntry - Returns the DV entry associated with a regular or a
   /// SameSD level
-  DVEntry getDVEntry(unsigned Level, bool isSameSD) const;
+  DVEntry getDVEntry(unsigned Level, bool IsSameSD) const;
 
   /// getDirection - Returns the direction associated with a particular
   /// common or SameSD level.
@@ -234,7 +234,7 @@ class LLVM_ABI Dependence {
 
   /// dumpImp - For debugging purposes. Dumps a dependence to OS with or
   /// without considering the SameSD levels.
-  void dumpImp(raw_ostream &OS, bool SameSD = false) const;
+  void dumpImp(raw_ostream &OS, bool IsSameSD = false) const;
 
 protected:
   Instruction *Src, *Dst;
@@ -282,8 +282,8 @@ class LLVM_ABI FullDependence final : public Dependence {
 
   /// getDVEntry - Returns the DV entry associated with a regular or a
   /// SameSD level.
-  DVEntry getDVEntry(unsigned Level, bool isSameSD) const {
-    if (!isSameSD) {
+  DVEntry getDVEntry(unsigned Level, bool IsSameSD) const {
+    if (!IsSameSD) {
       assert(0 < Level && Level <= Levels && "Level out of range");
       return DV[Level - 1];
     } else {
diff --git a/llvm/lib/Analysis/DependenceAnalysis.cpp b/llvm/lib/Analysis/DependenceAnalysis.cpp
index 1f0da8d1830d3..27396ff7547fb 100644
--- a/llvm/lib/Analysis/DependenceAnalysis.cpp
+++ b/llvm/lib/Analysis/DependenceAnalysis.cpp
@@ -275,7 +275,7 @@ bool Dependence::isAnti() const {
 // if no subscript in the source or destination mention the induction
 // variable associated with the loop at this level.
 // Leave this out of line, so it will serve as a virtual method anchor
-bool Dependence::isScalar(unsigned level, bool isSameSD) const { return false; }
+bool Dependence::isScalar(unsigned level, bool IsSameSD) const { return false; }
 
 //===----------------------------------------------------------------------===//
 // FullDependence methods
@@ -351,38 +351,38 @@ bool FullDependence::normalize(ScalarEvolution *SE) {
 
 // getDirection - Returns the direction associated with a particular common or
 // SameSD level.
-unsigned FullDependence::getDirection(unsigned Level, bool isSameSD) const {
-  return getDVEntry(Level, isSameSD).Direction;
+unsigned FullDependence::getDirection(unsigned Level, bool IsSameSD) const {
+  return getDVEntry(Level, IsSameSD).Direction;
 }
 
 // Returns the distance (or NULL) associated with a particular common or
 // SameSD level.
-const SCEV *FullDependence::getDistance(unsigned Level, bool isSameSD) const {
-  return getDVEntry(Level, isSameSD).Distance;
+const SCEV *FullDependence::getDistance(unsigned Level, bool IsSameSD) const {
+  return getDVEntry(Level, IsSameSD).Distance;
 }
 
 // Returns true if a particular regular or SameSD level is scalar; that is,
 // if no subscript in the source or destination mention the induction variable
 // associated with the loop at this level.
-bool FullDependence::isScalar(unsigned Level, bool isSameSD) const {
-  return getDVEntry(Level, isSameSD).Scalar;
+bool FullDependence::isScalar(unsigned Level, bool IsSameSD) const {
+  return getDVEntry(Level, IsSameSD).Scalar;
 }
 
 // Returns true if peeling the first iteration from this regular or SameSD
 // loop level will break this dependence.
-bool FullDependence::isPeelFirst(unsigned Level, bool isSameSD) const {
-  return getDVEntry(Level, isSameSD).PeelFirst;
+bool FullDependence::isPeelFirst(unsigned Level, bool IsSameSD) const {
+  return getDVEntry(Level, IsSameSD).PeelFirst;
 }
 
 // Returns true if peeling the last iteration from this regular or SameSD
 // loop level will break this dependence.
-bool FullDependence::isPeelLast(unsigned Level, bool isSameSD) const {
-  return getDVEntry(Level, isSameSD).PeelLast;
+bool FullDependence::isPeelLast(unsigned Level, bool IsSameSD) const {
+  return getDVEntry(Level, IsSameSD).PeelLast;
 }
 
 // Returns true if splitting loop will break the dependence.
-bool FullDependence::isSplitable(unsigned Level, bool isSameSD) const {
-  return getDVEntry(Level, isSameSD).Splitable;
+bool FullDependence::isSplitable(unsigned Level, bool IsSameSD) const {
+  return getDVEntry(Level, IsSameSD).Splitable;
 }
 
 // inSameSDLoops - Returns true if this level is an SameSD level, i.e.,
@@ -706,13 +706,13 @@ void Dependence::dump(raw_ostream &OS) const {
 
 // For debugging purposes. Dumps a dependence to OS with or without considering
 // the SameSD levels.
-void Dependence::dumpImp(raw_ostream &OS, bool isSameSD) const {
+void Dependence::dumpImp(raw_ostream &OS, bool IsSameSD) const {
   bool Splitable = false;
   unsigned Levels = getLevels();
   unsigned SameSDLevels = getSameSDLevels();
   bool OnSameSD = false;
   unsigned LevelNum = Levels;
-  if (isSameSD)
+  if (IsSameSD)
     LevelNum += SameSDLevels;
   OS << " [";
   for (unsigned II = 1; II <= LevelNum; ++II) {

>From 7017d6e124662b43216bc5967dba1b317572d82c Mon Sep 17 00:00:00 2001
From: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: Thu, 9 Oct 2025 12:18:47 +0000
Subject: [PATCH 2/3] change debug format

---
 llvm/lib/Analysis/DependenceAnalysis.cpp           | 14 +++++++++-----
 .../PreliminaryNoValidityCheckFixedSize.ll         |  1 +
 .../Analysis/DependenceAnalysis/SameSDLoops.ll     | 10 ++++++----
 3 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/llvm/lib/Analysis/DependenceAnalysis.cpp b/llvm/lib/Analysis/DependenceAnalysis.cpp
index 27396ff7547fb..163bb7d271efa 100644
--- a/llvm/lib/Analysis/DependenceAnalysis.cpp
+++ b/llvm/lib/Analysis/DependenceAnalysis.cpp
@@ -212,6 +212,15 @@ static void dumpExampleDependence(raw_ostream &OS, DependenceInfo *DA,
             if (NormalizeResults && D->normalize(&SE))
               OS << "normalized - ";
             D->dump(OS);
+
+            unsigned SameSDLevels = D->getSameSDLevels();
+            if (SameSDLevels > 0) {
+              OS.indent(2) << "da analyze - assuming " << SameSDLevels
+                           << " loop level(s) fused: ";
+              D->dumpImp(OS, true);
+              OS << "\n";
+            }
+
             for (unsigned Level = 1; Level <= D->getLevels(); Level++) {
               if (D->isSplitable(Level)) {
                 OS << "  da analyze - split level = " << Level;
@@ -689,11 +698,6 @@ void Dependence::dump(raw_ostream &OS) const {
     else if (isInput())
       OS << "input";
     dumpImp(OS);
-    unsigned SameSDLevels = getSameSDLevels();
-    if (SameSDLevels > 0) {
-      OS << "! / assuming " << SameSDLevels << " loop level(s) fused: ";
-      dumpImp(OS, true);
-    }
   }
   OS << "!\n";
 
diff --git a/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll b/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
index e67cae7d39a75..1e51447b6e720 100644
--- a/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
@@ -21,6 +21,7 @@ define void @p2(i64 %n, ptr %A, ptr %B) nounwind uwtable ssp {
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.011, ptr %arrayidx8, align 8 --> Dst: %0 = load i64, ptr %arrayidx17, align 8
 ; CHECK-NEXT:    da analyze - flow [-3 -2]!
+; CHECK-NEXT:    da analyze - assuming 1 loop level(s) fused: [-3 -2 -1]
 ; CHECK-NEXT:  Src: store i64 %i.011, ptr %arrayidx8, align 8 --> Dst: store i64 %0, ptr %B.addr.24, align 8
 ; CHECK-NEXT:    da analyze - confused!
 ; CHECK-NEXT:  Src: %0 = load i64, ptr %arrayidx17, align 8 --> Dst: %0 = load i64, ptr %arrayidx17, align 8
diff --git a/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll b/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll
index f80e2cf5fd474..e893bb95502cb 100644
--- a/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll
@@ -18,7 +18,8 @@ define void @samebd0(ptr %A) nounwind uwtable ssp {
 ; CHECK-NEXT:  Src: store i64 %i.013, ptr %arrayidx12, align 8 --> Dst: store i64 %i.013, ptr %arrayidx12, align 8
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.013, ptr %arrayidx12, align 8 --> Dst: store i64 %l17.04, ptr %arrayidx24, align 8
-; CHECK-NEXT:    da analyze - output [-4 -3]! / assuming 2 loop level(s) fused: [-4 -3 -3 -1]!
+; CHECK-NEXT:    da analyze - output [-4 -3]!
+; CHECK-NEXT:    da analyze - assuming 2 loop level(s) fused: [-4 -3 -3 -1]
 ; CHECK-NEXT:  Src: store i64 %l17.04, ptr %arrayidx24, align 8 --> Dst: store i64 %l17.04, ptr %arrayidx24, align 8
 ; CHECK-NEXT:    da analyze - none!
 ;
@@ -96,7 +97,8 @@ define void @samebd1(ptr %A) nounwind uwtable ssp {
 ; CHECK-NEXT:  Src: store i64 %i.03, ptr %arrayidx, align 4 --> Dst: store i64 %i.03, ptr %arrayidx, align 4
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.03, ptr %arrayidx, align 4 --> Dst: %0 = load i64, ptr %arrayidx7, align 4
-; CHECK-NEXT:    da analyze - flow [|<]! / assuming 1 loop level(s) fused: [<=|<]!
+; CHECK-NEXT:    da analyze - flow [|<]!
+; CHECK-NEXT:    da analyze - assuming 1 loop level(s) fused: [<=|<]
 ; CHECK-NEXT:  Src: %0 = load i64, ptr %arrayidx7, align 4 --> Dst: %0 = load i64, ptr %arrayidx7, align 4
 ; CHECK-NEXT:    da analyze - none!
 ;
@@ -148,7 +150,7 @@ define void @non_samebd0(ptr %A) nounwind uwtable ssp {
 ; CHECK-NEXT:  Src: store i64 %i.013, ptr %arrayidx12, align 8 --> Dst: store i64 %i.013, ptr %arrayidx12, align 8
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.013, ptr %arrayidx12, align 8 --> Dst: store i64 %l17.04, ptr %arrayidx24, align 8
-; CHECK-NEXT:    da analyze - output [-4 -3]!{{$}}
+; CHECK-NEXT:    da analyze - output [-4 -3]!
 ; CHECK-NEXT:  Src: store i64 %l17.04, ptr %arrayidx24, align 8 --> Dst: store i64 %l17.04, ptr %arrayidx24, align 8
 ; CHECK-NEXT:    da analyze - none!
 ;
@@ -227,7 +229,7 @@ define void @non_samebd1(ptr %A) nounwind uwtable ssp {
 ; CHECK-NEXT:  Src: store i64 %i.03, ptr %arrayidx, align 4 --> Dst: store i64 %i.03, ptr %arrayidx, align 4
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.03, ptr %arrayidx, align 4 --> Dst: %0 = load i64, ptr %arrayidx7, align 4
-; CHECK-NEXT:    da analyze - flow [|<]!{{$}}
+; CHECK-NEXT:    da analyze - flow [|<]!
 ; CHECK-NEXT:  Src: %0 = load i64, ptr %arrayidx7, align 4 --> Dst: %0 = load i64, ptr %arrayidx7, align 4
 ; CHECK-NEXT:    da analyze - none!
 ;

>From 07e4e000211953b7496fd62b756a53d486c61830 Mon Sep 17 00:00:00 2001
From: Ryotaro Kasuga <kasuga.ryotaro at fujitsu.com>
Date: Fri, 10 Oct 2025 12:19:09 +0000
Subject: [PATCH 3/3] adjust debug message

---
 llvm/lib/Analysis/DependenceAnalysis.cpp           | 14 +++++---------
 .../PreliminaryNoValidityCheckFixedSize.ll         |  3 +--
 .../Analysis/DependenceAnalysis/SameSDLoops.ll     |  6 ++----
 3 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/llvm/lib/Analysis/DependenceAnalysis.cpp b/llvm/lib/Analysis/DependenceAnalysis.cpp
index 163bb7d271efa..8d20b0e10305b 100644
--- a/llvm/lib/Analysis/DependenceAnalysis.cpp
+++ b/llvm/lib/Analysis/DependenceAnalysis.cpp
@@ -212,15 +212,6 @@ static void dumpExampleDependence(raw_ostream &OS, DependenceInfo *DA,
             if (NormalizeResults && D->normalize(&SE))
               OS << "normalized - ";
             D->dump(OS);
-
-            unsigned SameSDLevels = D->getSameSDLevels();
-            if (SameSDLevels > 0) {
-              OS.indent(2) << "da analyze - assuming " << SameSDLevels
-                           << " loop level(s) fused: ";
-              D->dumpImp(OS, true);
-              OS << "\n";
-            }
-
             for (unsigned Level = 1; Level <= D->getLevels(); Level++) {
               if (D->isSplitable(Level)) {
                 OS << "  da analyze - split level = " << Level;
@@ -698,6 +689,11 @@ void Dependence::dump(raw_ostream &OS) const {
     else if (isInput())
       OS << "input";
     dumpImp(OS);
+    unsigned SameSDLevels = getSameSDLevels();
+    if (SameSDLevels > 0) {
+      OS << " / assuming " << SameSDLevels << " loop level(s) fused: ";
+      dumpImp(OS, true);
+    }
   }
   OS << "!\n";
 
diff --git a/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll b/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
index 1e51447b6e720..8cd29e691a7ef 100644
--- a/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/PreliminaryNoValidityCheckFixedSize.ll
@@ -20,8 +20,7 @@ define void @p2(i64 %n, ptr %A, ptr %B) nounwind uwtable ssp {
 ; CHECK-NEXT:  Src: store i64 %i.011, ptr %arrayidx8, align 8 --> Dst: store i64 %i.011, ptr %arrayidx8, align 8
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.011, ptr %arrayidx8, align 8 --> Dst: %0 = load i64, ptr %arrayidx17, align 8
-; CHECK-NEXT:    da analyze - flow [-3 -2]!
-; CHECK-NEXT:    da analyze - assuming 1 loop level(s) fused: [-3 -2 -1]
+; CHECK-NEXT:    da analyze - flow [-3 -2] / assuming 1 loop level(s) fused: [-3 -2 -1]!
 ; CHECK-NEXT:  Src: store i64 %i.011, ptr %arrayidx8, align 8 --> Dst: store i64 %0, ptr %B.addr.24, align 8
 ; CHECK-NEXT:    da analyze - confused!
 ; CHECK-NEXT:  Src: %0 = load i64, ptr %arrayidx17, align 8 --> Dst: %0 = load i64, ptr %arrayidx17, align 8
diff --git a/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll b/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll
index e893bb95502cb..57962e01de2b4 100644
--- a/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll
+++ b/llvm/test/Analysis/DependenceAnalysis/SameSDLoops.ll
@@ -18,8 +18,7 @@ define void @samebd0(ptr %A) nounwind uwtable ssp {
 ; CHECK-NEXT:  Src: store i64 %i.013, ptr %arrayidx12, align 8 --> Dst: store i64 %i.013, ptr %arrayidx12, align 8
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.013, ptr %arrayidx12, align 8 --> Dst: store i64 %l17.04, ptr %arrayidx24, align 8
-; CHECK-NEXT:    da analyze - output [-4 -3]!
-; CHECK-NEXT:    da analyze - assuming 2 loop level(s) fused: [-4 -3 -3 -1]
+; CHECK-NEXT:    da analyze - output [-4 -3] / assuming 2 loop level(s) fused: [-4 -3 -3 -1]!
 ; CHECK-NEXT:  Src: store i64 %l17.04, ptr %arrayidx24, align 8 --> Dst: store i64 %l17.04, ptr %arrayidx24, align 8
 ; CHECK-NEXT:    da analyze - none!
 ;
@@ -97,8 +96,7 @@ define void @samebd1(ptr %A) nounwind uwtable ssp {
 ; CHECK-NEXT:  Src: store i64 %i.03, ptr %arrayidx, align 4 --> Dst: store i64 %i.03, ptr %arrayidx, align 4
 ; CHECK-NEXT:    da analyze - none!
 ; CHECK-NEXT:  Src: store i64 %i.03, ptr %arrayidx, align 4 --> Dst: %0 = load i64, ptr %arrayidx7, align 4
-; CHECK-NEXT:    da analyze - flow [|<]!
-; CHECK-NEXT:    da analyze - assuming 1 loop level(s) fused: [<=|<]
+; CHECK-NEXT:    da analyze - flow [|<] / assuming 1 loop level(s) fused: [<=|<]!
 ; CHECK-NEXT:  Src: %0 = load i64, ptr %arrayidx7, align 4 --> Dst: %0 = load i64, ptr %arrayidx7, align 4
 ; CHECK-NEXT:    da analyze - none!
 ;



More information about the llvm-commits mailing list