[flang-commits] [flang] [mlir] [MLIR][ODS] Strip EnumAttr parameters in struct formats (PR #220727)
via flang-commits
flang-commits at lists.llvm.org
Wed Sep 2 13:50:07 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-openmp
Author: Mehdi Amini (joker-eph)
<details>
<summary>Changes</summary>
Add typed EnumAttr parameter wrappers for attribute and type definitions.
Parse and print their underlying enum values inside struct directives.
Assisted-by: Codex
---
Patch is 198.15 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/220727.diff
59 Files Affected:
- (modified) flang/docs/OpenMP-declare-target.md (+1-1)
- (modified) flang/test/Fir/omp-declare-target-data.fir (+22-22)
- (modified) flang/test/Integration/OpenMP/declare-target-deferred-marking-reductions.f90 (+2-2)
- (modified) flang/test/Integration/OpenMP/declare-target-deferred-marking.f90 (+4-4)
- (modified) flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90 (+19-19)
- (modified) flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap.f90 (+21-21)
- (modified) flang/test/Integration/OpenMP/declare-target-implicit-tarop-cap.f90 (+7-7)
- (modified) flang/test/Integration/OpenMP/declare-target-named-main-interface.f90 (+3-3)
- (modified) flang/test/Integration/OpenMP/function-filtering-2.f90 (+4-4)
- (modified) flang/test/Lower/OpenMP/common-block-map.f90 (+1-1)
- (modified) flang/test/Lower/OpenMP/declare-target-data.f90 (+20-20)
- (modified) flang/test/Lower/OpenMP/declare-target-func-and-subr.f90 (+23-23)
- (modified) flang/test/Lower/OpenMP/declare-target-multiple-entry.f90 (+3-3)
- (modified) flang/test/Lower/OpenMP/declare-target-unnamed-main.f90 (+1-1)
- (modified) flang/test/Lower/OpenMP/declare_target_module.f90 (+5-5)
- (modified) flang/test/Lower/OpenMP/omp-declare-target-program-var.f90 (+1-1)
- (modified) flang/test/Transforms/omp-automap-to-target-data.fir (+2-2)
- (modified) flang/test/Transforms/omp-function-filtering-todo.mlir (+1-1)
- (modified) mlir/docs/DefiningDialects/AttributesAndTypes.md (+5)
- (modified) mlir/include/mlir/Dialect/OpenMP/OpenMPAttrDefs.td (+2-2)
- (modified) mlir/include/mlir/IR/EnumAttr.td (+16)
- (modified) mlir/test/Dialect/OpenMP/attr.mlir (+30-30)
- (modified) mlir/test/Dialect/OpenMP/function-filter.mlir (+11-11)
- (modified) mlir/test/Dialect/OpenMP/host-op-filtering.mlir (+7-7)
- (modified) mlir/test/Dialect/OpenMP/invalid-interface.mlir (+2-2)
- (modified) mlir/test/Dialect/OpenMP/mark-declare-target.mlir (+44-44)
- (modified) mlir/test/Dialect/OpenMP/stack-to-shared.mlir (+2-2)
- (modified) mlir/test/Target/LLVMIR/omptarget-atomic-capture-control-options.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-atomic-update-control-options.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-constant-alloca-raise.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-debug-map-link-loc.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-all-device-types-device.mlir (+12-12)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-func-visibility.mlir (+4-4)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device-2.mlir (+3-3)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir (+17-17)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-module-rewrite-device.mlir (+12-12)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-to-device.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-declare-target-to-host.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-device-shared-mem.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-multi-reduction.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-parallel-llvm.mlir (+2-2)
- (modified) mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-private-llvm.mlir (+2-2)
- (modified) mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction-array-descriptor.mlir (+2-2)
- (modified) mlir/test/Target/LLVMIR/omptarget-teams-distribute-reduction.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-teams-llvm.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-teams-reduction.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-wsloop-collapsed.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/omptarget-wsloop.mlir (+2-2)
- (modified) mlir/test/Target/LLVMIR/openmp-data-target-device.mlir (+1-1)
- (modified) mlir/test/Target/LLVMIR/openmp-llvm-invalid.mlir (+4-4)
- (modified) mlir/test/Target/LLVMIR/openmp-llvm.mlir (+9-9)
- (modified) mlir/test/Target/LLVMIR/openmp-target-private-shared-mem.mlir (+2-2)
- (modified) mlir/test/lib/Dialect/Test/TestAttrDefs.td (+28)
- (modified) mlir/test/lib/Dialect/Test/TestEnumDefs.td (+20)
- (modified) mlir/test/mlir-tblgen/attr-or-type-format-roundtrip.mlir (+13)
- (modified) mlir/test/mlir-tblgen/attr-or-type-format.td (+60)
- (modified) mlir/tools/mlir-tblgen/AttrOrTypeFormatGen.cpp (+106-22)
``````````diff
diff --git a/flang/docs/OpenMP-declare-target.md b/flang/docs/OpenMP-declare-target.md
index e43a623cc9fb9..3a7d001d15846 100644
--- a/flang/docs/OpenMP-declare-target.md
+++ b/flang/docs/OpenMP-declare-target.md
@@ -79,7 +79,7 @@ would find on the `declare target` directive i.e. device type (`nohost`,
```
fir.global internal @_QFEi {omp.declare_target =
-#omp.declaretarget<device_type = (any), capture_clause = (to)>} : f32 {
+#omp.declaretarget<device_type = any, capture_clause = to>} : f32 {
%0 = fir.undefined f32
fir.has_value %0 : f32
}
diff --git a/flang/test/Fir/omp-declare-target-data.fir b/flang/test/Fir/omp-declare-target-data.fir
index 171ea8fe4fcc2..539a7acf267f2 100644
--- a/flang/test/Fir/omp-declare-target-data.fir
+++ b/flang/test/Fir/omp-declare-target-data.fir
@@ -2,11 +2,11 @@
module attributes {omp.is_target_device = false} {
- // CHECK: llvm.mlir.global external @_QMtest_0Earray_1d(dense<[1, 2, 3]> : tensor<3xi32>) {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>{{.*}}} : !llvm.array<3 x i32>
- fir.global @_QMtest_0Earray_1d(dense<[1, 2, 3]> : tensor<3xi32>) {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : !fir.array<3xi32>
+ // CHECK: llvm.mlir.global external @_QMtest_0Earray_1d(dense<[1, 2, 3]> : tensor<3xi32>) {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>{{.*}}} : !llvm.array<3 x i32>
+ fir.global @_QMtest_0Earray_1d(dense<[1, 2, 3]> : tensor<3xi32>) {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>} : !fir.array<3xi32>
- // CHECK: llvm.mlir.global external @_QMtest_0Earray_2d() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>{{.*}}} : !llvm.array<2 x array<2 x i32>>
- fir.global @_QMtest_0Earray_2d {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : !fir.array<2x2xi32> {
+ // CHECK: llvm.mlir.global external @_QMtest_0Earray_2d() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>{{.*}}} : !llvm.array<2 x array<2 x i32>>
+ fir.global @_QMtest_0Earray_2d {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>} : !fir.array<2x2xi32> {
%0 = fir.undefined !fir.array<2x2xi32>
%c1_i32 = arith.constant 1 : i32
%1 = fir.insert_value %0, %c1_i32, [0 : index, 0 : index] : (!fir.array<2x2xi32>, i32) -> !fir.array<2x2xi32>
@@ -21,57 +21,57 @@ module attributes {omp.is_target_device = false} {
fir.has_value %4 : !fir.array<2x2xi32>
}
- // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_link_1() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>{{.*}}} : f32
- fir.global @_QMtest_0Edata_extended_link_1 {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : f32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_link_1() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>{{.*}}} : f32
+ fir.global @_QMtest_0Edata_extended_link_1 {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>} : f32 {
%cst = arith.constant 2.000000e+00 : f32
fir.has_value %cst : f32
}
- // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_link_2() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>{{.*}}} : f32
- fir.global @_QMtest_0Edata_extended_link_2 {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : f32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_link_2() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>{{.*}}} : f32
+ fir.global @_QMtest_0Edata_extended_link_2 {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>} : f32 {
%cst = arith.constant 3.000000e+00 : f32
fir.has_value %cst : f32
}
- // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_to_1() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>{{.*}}} : f32
- fir.global @_QMtest_0Edata_extended_to_1 {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>} : f32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_to_1() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>{{.*}}} : f32
+ fir.global @_QMtest_0Edata_extended_to_1 {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>} : f32 {
%cst = arith.constant 2.000000e+00 : f32
fir.has_value %cst : f32
}
- // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_to_2() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>{{.*}}} : f32 {
- fir.global @_QMtest_0Edata_extended_to_2 {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>} : f32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Edata_extended_to_2() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>{{.*}}} : f32 {
+ fir.global @_QMtest_0Edata_extended_to_2 {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>} : f32 {
%cst = arith.constant 3.000000e+00 : f32
fir.has_value %cst : f32
}
- // CHECK: llvm.mlir.global external @_QMtest_0Edata_int() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>{{.*}}} : i32
- fir.global @_QMtest_0Edata_int {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : i32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Edata_int() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>{{.*}}} : i32
+ fir.global @_QMtest_0Edata_int {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>} : i32 {
%c10_i32 = arith.constant 10 : i32
fir.has_value %c10_i32 : i32
}
- // CHECK: llvm.mlir.global external @_QMtest_0Edata_int_clauseless() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>{{.*}}} : i32
- fir.global @_QMtest_0Edata_int_clauseless {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>} : i32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Edata_int_clauseless() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>{{.*}}} : i32
+ fir.global @_QMtest_0Edata_int_clauseless {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>} : i32 {
%c1_i32 = arith.constant 1 : i32
fir.has_value %c1_i32 : i32
}
- // CHECK: llvm.mlir.global external @_QMtest_0Edata_int_to() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>{{.*}}} : i32
- fir.global @_QMtest_0Edata_int_to {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to)>} : i32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Edata_int_to() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>{{.*}}} : i32
+ fir.global @_QMtest_0Edata_int_to {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to>} : i32 {
%c5_i32 = arith.constant 5 : i32
fir.has_value %c5_i32 : i32
}
- // CHECK: llvm.mlir.global external @_QMtest_0Ept1() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>{{.*}}} : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)> {
- fir.global @_QMtest_0Ept1 {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : !fir.box<!fir.ptr<i32>> {
+ // CHECK: llvm.mlir.global external @_QMtest_0Ept1() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>{{.*}}} : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)> {
+ fir.global @_QMtest_0Ept1 {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>} : !fir.box<!fir.ptr<i32>> {
%0 = fir.zero_bits !fir.ptr<i32>
%1 = fir.embox %0 : (!fir.ptr<i32>) -> !fir.box<!fir.ptr<i32>>
fir.has_value %1 : !fir.box<!fir.ptr<i32>>
}
- // CHECK: llvm.mlir.global external @_QMtest_0Ept2_tar() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>{{.*}}} : i32
- fir.global @_QMtest_0Ept2_tar {omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} target : i32 {
+ // CHECK: llvm.mlir.global external @_QMtest_0Ept2_tar() {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>{{.*}}} : i32
+ fir.global @_QMtest_0Ept2_tar {omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = link>} target : i32 {
%c5_i32 = arith.constant 5 : i32
fir.has_value %c5_i32 : i32
}
diff --git a/flang/test/Integration/OpenMP/declare-target-deferred-marking-reductions.f90 b/flang/test/Integration/OpenMP/declare-target-deferred-marking-reductions.f90
index 124ec4b8ffbd7..ede40592426ef 100644
--- a/flang/test/Integration/OpenMP/declare-target-deferred-marking-reductions.f90
+++ b/flang/test/Integration/OpenMP/declare-target-deferred-marking-reductions.f90
@@ -39,6 +39,6 @@ end function mycombine
end program main
!CHECK: llvm.func @myinit(!llvm.ptr, !llvm.ptr)
-!CHECK-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}
+!CHECK-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}
!CHECK-LABEL: llvm.func @mycombine(!llvm.ptr, !llvm.ptr)
-!CHECK-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}
+!CHECK-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}
diff --git a/flang/test/Integration/OpenMP/declare-target-deferred-marking.f90 b/flang/test/Integration/OpenMP/declare-target-deferred-marking.f90
index 8be7efd2619f1..8b2e02797ed2a 100644
--- a/flang/test/Integration/OpenMP/declare-target-deferred-marking.f90
+++ b/flang/test/Integration/OpenMP/declare-target-deferred-marking.f90
@@ -59,10 +59,10 @@ end subroutine unused_unemitted_interface
end program main
!HOST-LABEL: llvm.func @host_interface()
-!HOST-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = (host), capture_clause = (enter)>{{.*}}
+!HOST-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = host, capture_clause = enter>{{.*}}
!ALL-LABEL: llvm.func @called_from_target_interface(!llvm.ptr, !llvm.ptr)
-!ALL-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}
+!ALL-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}
!ALL-LABEL: llvm.func @any_interface()
-!ALL-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (enter)>{{.*}}
+!ALL-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = enter>{{.*}}
!ALL-LABEL: llvm.func @device_interface()
-!ALL-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter)>{{.*}}
+!ALL-SAME: {{.*}}, omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = enter>{{.*}}
diff --git a/flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90 b/flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
index 225a8f4bec855..b0a4cd75b9497 100644
--- a/flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
+++ b/flang/test/Integration/OpenMP/declare-target-implicit-func-and-subr-cap-enter.f90
@@ -36,7 +36,7 @@ recursive subroutine implicitly_captured_recursive(increment)
contains
! CHECK-LABEL: llvm.func{{.*}} @_QFPimplicitly_captured_twice
- ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}}
+ ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_twice() result(k)
integer :: i
i = 10
@@ -44,7 +44,7 @@ function implicitly_captured_twice() result(k)
end function implicitly_captured_twice
! CHECK-LABEL: llvm.func{{.*}} @_QFPtarget_function_twice_host()
- ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (host), capture_clause = (enter)>{{.*}}}
+ ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = host, capture_clause = enter>{{.*}}}
function target_function_twice_host() result(i)
!$omp declare target enter(target_function_twice_host) device_type(host)
integer :: i
@@ -52,7 +52,7 @@ function target_function_twice_host() result(i)
end function target_function_twice_host
! DEVICE-LABEL: llvm.func{{.*}} @_QFPtarget_function_twice_device()
- ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter)>{{.*}}}
+ ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = enter>{{.*}}}
function target_function_twice_device() result(i)
!$omp declare target enter(target_function_twice_device) device_type(nohost)
integer :: i
@@ -62,7 +62,7 @@ end function target_function_twice_device
!! -----
! DEVICE-LABEL: llvm.func{{.*}} @_QFPimplicitly_captured_nest()
- ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), implicit = true>{{.*}}}
+ ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_nest() result(k)
integer :: i
i = 10
@@ -70,13 +70,13 @@ function implicitly_captured_nest() result(k)
end function implicitly_captured_nest
! DEVICE-LABEL: llvm.func{{.*}} @_QFPimplicitly_captured_one()
- ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), implicit = true>{{.*}}}
+ ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_one() result(k)
k = implicitly_captured_nest()
end function implicitly_captured_one
! DEVICE-LABEL: llvm.func{{.*}} @_QFPimplicitly_captured_two()
- ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (to), implicit = true>{{.*}}}
+ ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_two() result(k)
integer :: i
i = 10
@@ -84,7 +84,7 @@ function implicitly_captured_two() result(k)
end function implicitly_captured_two
! DEVICE-LABEL: llvm.func{{.*}} @_QFPtarget_function_test()
- ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter)>{{.*}}}
+ ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = enter>{{.*}}}
function target_function_test() result(j)
!$omp declare target enter(target_function_test) device_type(nohost)
integer :: i, j
@@ -95,7 +95,7 @@ end function target_function_test
!! -----
! CHECK-LABEL: llvm.func{{.*}} @_QFPimplicitly_captured_nest_twice()
- ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}}
+ ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_nest_twice() result(k)
integer :: i
i = 10
@@ -103,13 +103,13 @@ function implicitly_captured_nest_twice() result(k)
end function implicitly_captured_nest_twice
! CHECK-LABEL: llvm.func{{.*}} @_QFPimplicitly_captured_one_twice()
- ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}}
+ ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_one_twice() result(k)
k = implicitly_captured_nest_twice()
end function implicitly_captured_one_twice
! CHECK-LABEL: llvm.func{{.*}} @_QFPimplicitly_captured_two_twice()
- ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}}
+ ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_two_twice() result(k)
integer :: i
i = 10
@@ -117,7 +117,7 @@ function implicitly_captured_two_twice() result(k)
end function implicitly_captured_two_twice
! DEVICE-LABEL: llvm.func{{.*}} @_QFPtarget_function_test_device()
- ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter)>{{.*}}}
+ ! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = enter>{{.*}}}
function target_function_test_device() result(j)
!$omp declare target enter(target_function_test_device) device_type(nohost)
integer :: i, j
@@ -126,7 +126,7 @@ function target_function_test_device() result(j)
end function target_function_test_device
! CHECK-LABEL: llvm.func{{.*}} @_QFPtarget_function_test_host()
- ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (host), capture_clause = (enter)>{{.*}}}
+ ! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = host, capture_clause = enter>{{.*}}}
function target_function_test_host() result(j)
!$omp declare target enter(target_function_test_host) device_type(host)
integer :: i, j
@@ -150,7 +150,7 @@ recursive function implicitly_captured_with_dev_type_recursive(increment) result
end function implicitly_captured_with_dev_type_recursive
! DEVICE-LABEL: llvm.func @_QPtarget_function_with_dev_type_recurse()
-! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (nohost), capture_clause = (enter)>{{.*}}}
+! DEVICE-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = nohost, capture_clause = enter>{{.*}}}
function target_function_with_dev_type_recurse() result(i)
!$omp declare target enter(target_function_with_dev_type_recurse) device_type(nohost)
integer :: i
@@ -162,28 +162,28 @@ end function target_function_with_dev_type_recurse
module test_module
contains
! CHECK-LABEL: llvm.func @_QMtest_modulePimplicitly_captured_nest_twice()
-! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (to), implicit = true>{{.*}}}
+! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = any, capture_clause = to, implicit = true>{{.*}}}
function implicitly_captured_nest_twice() result(i)
integer :: i
i = 10
end function implicitly_captured_nest_twice
! CHECK-LABEL: llvm.func @_QMtest_modulePimplicitly_captured_one_twice()
-! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = (host), capture_clause = (enter)>{{.*}}}
+! CHECK-SAME: {{.*}}attributes {{{.*}}omp.declare_target = #omp.declaretarget<device_type = host, capture_clause = enter>{{.*}}}
function implicitly_captur...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/220727
More information about the flang-commits
mailing list