[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