[flang-commits] [flang] 320c330 - [flang][cuda] Update visibility of declaration copied to in gpu.module (#179725)
via flang-commits
flang-commits at lists.llvm.org
Wed Feb 4 10:49:47 PST 2026
Author: Valentin Clement (バレンタイン クレメン)
Date: 2026-02-04T18:49:40Z
New Revision: 320c3309897dc8279300fc3d233c5d677cf0053a
URL: https://github.com/llvm/llvm-project/commit/320c3309897dc8279300fc3d233c5d677cf0053a
DIFF: https://github.com/llvm/llvm-project/commit/320c3309897dc8279300fc3d233c5d677cf0053a.diff
LOG: [flang][cuda] Update visibility of declaration copied to in gpu.module (#179725)
https://github.com/llvm/llvm-project/pull/179362 changes which op is
checked for visibility during nested symbol resolution. This cause
issues in the CUDA Fortran pipeline and make some lookup fails. Update
the visibility of declaration copied to the gpu.module to nested.
Added:
Modified:
flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
flang/test/Fir/CUDA/cuda-device-func-transform.mlir
Removed:
################################################################################
diff --git a/flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp b/flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
index 4be174fe7a4ea..4532af98d8390 100644
--- a/flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
+++ b/flang/lib/Optimizer/Transforms/CUDA/CUFDeviceFuncTransform.cpp
@@ -223,6 +223,8 @@ class CUFDeviceFuncTransform
clonedFuncOp->setAttr(gpu::GPUDialect::getKernelFuncAttrName(),
builder.getUnitAttr());
clonedFuncOp->removeAttr(cuf::getProcAttrName());
+ if (auto funcOp = mlir::dyn_cast<func::FuncOp>(clonedFuncOp))
+ funcOp.setNested();
}
gpuModSymTab.insert(clonedFuncOp);
} else {
diff --git a/flang/test/Fir/CUDA/cuda-device-func-transform.mlir b/flang/test/Fir/CUDA/cuda-device-func-transform.mlir
index 1ce21aeecffe5..cc183f0144e82 100644
--- a/flang/test/Fir/CUDA/cuda-device-func-transform.mlir
+++ b/flang/test/Fir/CUDA/cuda-device-func-transform.mlir
@@ -45,7 +45,7 @@ func.func private @_QMmod1Psub1(!fir.ref<!fir.array<10xi32>> {cuf.data_attr = #c
// CHECK: gpu.func @_QPsub_host_device1()
-// CHECK: func.func private @_QMmod1Psub1(!fir.ref<!fir.array<10xi32>> {cuf.data_attr = #cuf.cuda<device>}) attributes {gpu.kernel}
+// CHECK: func.func nested @_QMmod1Psub1(!fir.ref<!fir.array<10xi32>> {cuf.data_attr = #cuf.cuda<device>}) attributes {gpu.kernel}
// CHECK: func.func @_QPsub_global1() attributes {cuf.proc_attr = #cuf.cuda_proc<global>}
// CHECK-NEXT: return
More information about the flang-commits
mailing list