[flang-commits] [flang] [flang][cuda] Fix invalid address space in addressof op conversion (PR #192111)

Valentin Clement バレンタイン クレメン via flang-commits flang-commits at lists.llvm.org
Tue Apr 14 11:54:44 PDT 2026


================
@@ -196,6 +196,22 @@ mlir::Value replaceWithAddrOfOrASCast(mlir::ConversionPatternRewriter &rewriter,
   return mlir::LLVM::AddressOfOp::create(rewriter, loc, type, symName);
 }
 
+static std::uint64_t getAddressSpace(fir::AddrOfOp addr,
+                                     mlir::ConversionPatternRewriter &rewriter,
+                                     std::uint64_t defaultAS) {
+  auto global = addr->getParentOfType<mlir::ModuleOp>()
+                    .lookupSymbol<mlir::LLVM::GlobalOp>(addr.getSymbol());
+  if (global)
+    return global.getAddrSpace();
+  auto firGlobal =
+      addr->getParentOfType<mlir::ModuleOp>().lookupSymbol<fir::GlobalOp>(
+          addr.getSymbol());
+  if (firGlobal && firGlobal.getDataAttr() &&
+      *firGlobal.getDataAttr() == cuf::DataAttribute::Constant)
----------------
clementval wrote:

`shared` is not accessible from the host. 

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


More information about the flang-commits mailing list