[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