[flang-commits] [flang] [flang] AliasAnalysis: Handle fir.load on fir.alloca (PR #117785)

Renaud Kauffmann via flang-commits flang-commits at lists.llvm.org
Tue Jan 7 16:32:19 PST 2025


================
@@ -522,6 +546,12 @@ AliasAnalysis::Source AliasAnalysis::getSource(mlir::Value v,
         .Case<fir::AllocaOp, fir::AllocMemOp>([&](auto op) {
           // Unique memory allocation.
           type = SourceKind::Allocate;
+          // If there's no DeclareOp, then we need to get the pointer attribute
+          // from the type.  TODO: That case occurs in our test suite
+          // (alias-analysis-2.fir), but does flang currently generate such
+          // code?
+          if (isPointerReference(ty))
+            attributes.set(Attribute::Pointer);
----------------
Renaud-K wrote:

C2 is the issue. Unlike `!fir_ptr<T>`, a `!fir_ref <!fir_ptr<T>>` is not a fortran `POINTER`. I am aware of the discrepancy with fir.AddrOf and as you can see there is a TODO there. I will be revisiting the whole `fir.load` approach to address it.   

https://github.com/llvm/llvm-project/pull/117785


More information about the flang-commits mailing list