[flang-commits] [flang] WIP: experiment with PR #127845 (PR #128025)
Joel E. Denny via flang-commits
flang-commits at lists.llvm.org
Thu Feb 20 08:36:41 PST 2025
https://github.com/jdenny-ornl updated https://github.com/llvm/llvm-project/pull/128025
>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 bc707baf58efeab2df71426ec8eee9239ac5e624 Mon Sep 17 00:00:00 2001
From: "Joel E. Denny" <jdenny.ornl at gmail.com>
Date: Thu, 20 Feb 2025 11:36:32 -0500
Subject: [PATCH 2/2] Remove first new `else` so Indirect goes back to Unknown
---
flang/lib/Optimizer/Analysis/AliasAnalysis.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
index d881b630d33d9..4384e187a754d 100644
--- a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
+++ b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
@@ -641,8 +641,6 @@ AliasAnalysis::Source AliasAnalysis::getSource(mlir::Value v,
} else if (isDummyArgument(def)) {
defOp = nullptr;
v = def;
- } else {
- type = SourceKind::Indirect;
}
} else {
// No further tracking for addresses loaded from memory for now.
More information about the flang-commits
mailing list