[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:39:29 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/3] [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/3] 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;
>From 522514a8b39b7c0379d24b0c9cd582f48f62161d Mon Sep 17 00:00:00 2001
From: "Joel E. Denny" <jdenny.ornl at gmail.com>
Date: Fri, 21 Feb 2025 12:38:20 -0500
Subject: [PATCH 3/3] Apply clang-format
---
flang/lib/Optimizer/Analysis/AliasAnalysis.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
index 37c4f26de0a6d..2bc79100b03b6 100644
--- a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
+++ b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
@@ -644,10 +644,10 @@ 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>.
+ // 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.
More information about the flang-commits
mailing list