[flang-commits] [flang] [flang][cuda] Do not fail if global is not found (PR #163445)
Valentin Clement バレンタイン クレメン via flang-commits
flang-commits at lists.llvm.org
Tue Oct 14 13:25:56 PDT 2025
https://github.com/clementval created https://github.com/llvm/llvm-project/pull/163445
None
>From 352797eb2c7247cd23a98386ab8cbdd523efc2dc Mon Sep 17 00:00:00 2001
From: Valentin Clement <clementval at gmail.com>
Date: Tue, 14 Oct 2025 13:24:41 -0700
Subject: [PATCH] [flang][cuda] Do not fail if global is not found
---
flang/lib/Optimizer/CodeGen/CodeGen.cpp | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/flang/lib/Optimizer/CodeGen/CodeGen.cpp b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
index 3c3804f35bf30..70bb43a2510ba 100644
--- a/flang/lib/Optimizer/CodeGen/CodeGen.cpp
+++ b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
@@ -179,11 +179,13 @@ struct AddrOfOpConversion : public fir::FIROpConversion<fir::AddrOfOp> {
if (auto gpuMod = addr->getParentOfType<mlir::gpu::GPUModuleOp>()) {
auto global = gpuMod.lookupSymbol<mlir::LLVM::GlobalOp>(addr.getSymbol());
- assert(global && "Expect global in gpu module");
- replaceWithAddrOfOrASCast(rewriter, addr->getLoc(), global.getAddrSpace(),
- getProgramAddressSpace(rewriter),
- global.getSymName(),
- convertType(addr.getType()), addr);
+ replaceWithAddrOfOrASCast(
+ rewriter, addr->getLoc(),
+ global ? global.getAddrSpace() : getGlobalAddressSpace(rewriter),
+ getProgramAddressSpace(rewriter),
+ global ? global.getSymName()
+ : addr.getSymbol().getRootReference().getValue(),
+ convertType(addr.getType()), addr);
return mlir::success();
}
More information about the flang-commits
mailing list