[flang-commits] [flang] [flang][NFC] AliasAnalysis: Use Indirect not Unknown for LoadOp (PR #127845)

Joel E. Denny via flang-commits flang-commits at lists.llvm.org
Fri Feb 21 09:23:03 PST 2025


https://github.com/jdenny-ornl updated https://github.com/llvm/llvm-project/pull/127845

>From ee79716519e78984b8f106a6dad551464da1149a Mon Sep 17 00:00:00 2001
From: "Joel E. Denny" <jdenny.ornl at gmail.com>
Date: Wed, 19 Feb 2025 13:33:19 -0500
Subject: [PATCH 1/2] [flang][NFC] AliasAnalysis: Use Indirect not Unknown for
 LoadOp

As mentioned at
<https://github.com/llvm/llvm-project/pull/126156#discussion_r1953523892>:
PR #126156 causes AliasAnalysis::getSource to sometimes return
SourceKind::Unknown when it used to return SourceKind::Indirect for a
LoadOp.  This patch restores that part of the old behavior.  It should
not affect user-visible behavior because AliasAnalysis::alias treats
SourceKind::Unknown and SourceKind::Indirect equivalently, but it does
improve debugging output.
---
 flang/lib/Optimizer/Analysis/AliasAnalysis.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
index 70fa18ad65b9b..d881b630d33d9 100644
--- a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
+++ b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
@@ -641,14 +641,13 @@ AliasAnalysis::Source AliasAnalysis::getSource(mlir::Value v,
             } else if (isDummyArgument(def)) {
               defOp = nullptr;
               v = def;
+            } else {
+              type = SourceKind::Indirect;
             }
-
-            breakFromLoop = true;
-            return;
+          } else {
+            // No further tracking for addresses loaded from memory for now.
+            type = SourceKind::Indirect;
           }
-
-          // No further tracking for addresses loaded from memory for now.
-          type = SourceKind::Indirect;
           breakFromLoop = true;
         })
         .Case<fir::AddrOfOp>([&](auto op) {

>From 890125bf37b33488b82c28035ac69b9e9926c614 Mon Sep 17 00:00:00 2001
From: "Joel E. Denny" <jdenny.ornl at gmail.com>
Date: Fri, 21 Feb 2025 11:40:34 -0500
Subject: [PATCH 2/2] Work around apparent MSVC bug

---
 flang/lib/Optimizer/Analysis/AliasAnalysis.cpp | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
index d881b630d33d9..37c4f26de0a6d 100644
--- a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
+++ b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
@@ -644,6 +644,11 @@ AliasAnalysis::Source AliasAnalysis::getSource(mlir::Value v,
             } else {
               type = SourceKind::Indirect;
             }
+	    // TODO: This assignment is redundant but somehow works around an
+	    // apparent MSVC bug reporting "undeclared identifier" at the next
+	    // "breakFromLoop = true;".  See
+	    // <https://github.com/llvm/llvm-project/pull/127845#issuecomment-2669829610>.
+            breakFromLoop = true;
           } else {
             // No further tracking for addresses loaded from memory for now.
             type = SourceKind::Indirect;



More information about the flang-commits mailing list