[flang-commits] [flang] c1c2c92 - [flang][cuda][NFC] Add test for attributes on procedure (#83044)

via flang-commits flang-commits at lists.llvm.org
Tue Feb 27 09:01:55 PST 2024


Author: Valentin Clement (バレンタイン クレメン)
Date: 2024-02-27T09:01:50-08:00
New Revision: c1c2c928f935ba142e4ee7804dd3ff0ebf0ce4c7

URL: https://github.com/llvm/llvm-project/commit/c1c2c928f935ba142e4ee7804dd3ff0ebf0ce4c7
DIFF: https://github.com/llvm/llvm-project/commit/c1c2c928f935ba142e4ee7804dd3ff0ebf0ce4c7.diff

LOG: [flang][cuda][NFC] Add test for attributes on procedure (#83044)

Similar to #82844. Test that CUDA attributes on procedure are correctly
imported.

Added: 
    

Modified: 
    flang/test/Lower/CUDA/cuda-mod.cuf
    flang/test/Lower/CUDA/cuda-module-use.cuf

Removed: 
    


################################################################################
diff  --git a/flang/test/Lower/CUDA/cuda-mod.cuf b/flang/test/Lower/CUDA/cuda-mod.cuf
index 2cc6439789a279..ae5bf63d2da49b 100644
--- a/flang/test/Lower/CUDA/cuda-mod.cuf
+++ b/flang/test/Lower/CUDA/cuda-mod.cuf
@@ -4,6 +4,12 @@
 
 module cuf_mod
   real, device :: md
+
+contains
+  attributes(device) subroutine devsub()
+  end
 end module
 
 ! CHECK: fir.global @_QMcuf_modEmd {cuda_attr = #fir.cuda<device>} : f32
+
+! CHECK: func.func @_QMcuf_modPdevsub() attributes {fir.cuda_attr = #fir.cuda_proc<device>}

diff  --git a/flang/test/Lower/CUDA/cuda-module-use.cuf b/flang/test/Lower/CUDA/cuda-module-use.cuf
index 43ab0f6ff8d68e..f54083b026ee88 100644
--- a/flang/test/Lower/CUDA/cuda-module-use.cuf
+++ b/flang/test/Lower/CUDA/cuda-module-use.cuf
@@ -1,7 +1,7 @@
 ! RUN: bbc -emit-hlfir -fcuda %S/cuda-mod.cuf
 ! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s
 
-! Test importing module with variable with CUDA attributes.
+! Test importing module containing variable and subroutine with CUDA attributes.
 
 subroutine sub1()
   use cuf_mod
@@ -12,4 +12,14 @@ end
 ! CHECK: %[[ADDR:.*]] = fir.address_of(@_QMcuf_modEmd) : !fir.ref<f32>
 ! CHECK: %{{.*}}:2 = hlfir.declare %[[ADDR]] {cuda_attr = #fir.cuda<device>, uniq_name = "_QMcuf_modEmd"} : (!fir.ref<f32>) -> (!fir.ref<f32>, !fir.ref<f32>)
 
-! CHECK: fir.global @_QMcuf_modEmd {cuda_attr = #fir.cuda<device>} : f32
+attributes(device) subroutine sub2()
+  use cuf_mod
+  call devsub()
+end
+
+! CHECK-LABEL: func.func @_QPsub2() attributes {fir.cuda_attr = #fir.cuda_proc<device>}
+! CHECK: fir.call @_QMcuf_modPdevsub()
+
+! CHECK-LABEL: fir.global @_QMcuf_modEmd {cuda_attr = #fir.cuda<device>} : f32
+
+! CHECK-LABEL: func.func private @_QMcuf_modPdevsub() attributes {fir.cuda_attr = #fir.cuda_proc<device>}


        


More information about the flang-commits mailing list