[clang] [CIR][HIP] Match kernel handle linkage, visibility and comdat (PR #227267)

Mariya Podchishchaeva via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 30 08:56:45 PDT 2026


================
@@ -357,6 +357,13 @@ void CIRGenNVCUDARuntime::emitDeviceStub(CIRGenFunction &cgf, cir::FuncOp fn,
     globalOp->removeAttr("sym_visibility");
     globalOp->setAttr("alignment", builder.getI64IntegerAttr(
                                        cgm.getPointerAlign().getQuantity()));
+
+    // The stub's linkage is only final once it is defined, so the handle
+    // takes it over here.
+    globalOp.setLinkage(fn.getLinkage());
+    mlir::SymbolTable::setSymbolVisibility(
+        globalOp, cgm.getMLIRVisibilityFromCIRLinkage(fn.getLinkage()));
+    cgm.setDSOLocal(static_cast<mlir::Operation *>(globalOp));
----------------
Fznamznon wrote:

Should we only set DSO local if fn has it?

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


More information about the cfe-commits mailing list