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

via flang-commits flang-commits at lists.llvm.org
Fri Feb 21 10:34:46 PST 2025


Author: Joel E. Denny
Date: 2025-02-21T13:34:42-05:00
New Revision: 976641062e7750f26ea12eedf22287f9c2250bff

URL: https://github.com/llvm/llvm-project/commit/976641062e7750f26ea12eedf22287f9c2250bff
DIFF: https://github.com/llvm/llvm-project/commit/976641062e7750f26ea12eedf22287f9c2250bff.diff

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

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.

Added: 
    

Modified: 
    flang/lib/Optimizer/Analysis/AliasAnalysis.cpp

Removed: 
    


################################################################################
diff  --git a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
index 70fa18ad65b9b..2bc79100b03b6 100644
--- a/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
+++ b/flang/lib/Optimizer/Analysis/AliasAnalysis.cpp
@@ -641,14 +641,18 @@ AliasAnalysis::Source AliasAnalysis::getSource(mlir::Value v,
             } else if (isDummyArgument(def)) {
               defOp = nullptr;
               v = def;
+            } 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;
-            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) {


        


More information about the flang-commits mailing list