Skip to content

Commit bbab5e4

Browse files
[MLIR][OpenMP] Use opaque pointers in OpenMP translation tests 2/2 (#70138)
Second half of the tests switching to opaque pointers. All are the target related tests. Removes mlir/test/Target/LLVMIR/openmp-reduction-typed-pointers.mlir, since this seems to be added to test the typed pointers and probably not needed anymore.
1 parent ea99df2 commit bbab5e4

8 files changed

+121
-196
lines changed

mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device.mlir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ module attributes {omp.is_target_device = true} {
1515
}
1616

1717
llvm.func @_QQmain() attributes {} {
18-
%0 = llvm.mlir.addressof @_QMtest_0Esp : !llvm.ptr<i32>
18+
%0 = llvm.mlir.addressof @_QMtest_0Esp : !llvm.ptr
1919

2020
// CHECK-DAG: omp.target: ; preds = %user_code.entry
2121
// CHECK-DAG: %1 = load ptr, ptr @_QMtest_0Esp_decl_tgt_ref_ptr, align 8
2222
// CHECK-DAG: store i32 1, ptr %1, align 4
2323
// CHECK-DAG: br label %omp.region.cont
24-
%map = omp.map_info var_ptr(%0 : !llvm.ptr<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<i32> {name = ""}
25-
omp.target map_entries(%map : !llvm.ptr<i32>) {
24+
%map = omp.map_info var_ptr(%0 : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
25+
omp.target map_entries(%map : !llvm.ptr) {
2626
%1 = llvm.mlir.constant(1 : i32) : i32
27-
llvm.store %1, %0 : !llvm.ptr<i32>
27+
llvm.store %1, %0 : i32, !llvm.ptr
2828
omp.terminator
2929
}
3030

mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-host.mlir

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -102,30 +102,30 @@ module attributes {llvm.target_triple = "x86_64-unknown-linux-gnu", omp.is_targe
102102
// CHECK-DAG: @.omp_offloading.entry_name{{.*}} = internal unnamed_addr constant [31 x i8] c"_QMtest_0Ept1_decl_tgt_ref_ptr\00"
103103
// CHECK-DAG: @.omp_offloading.entry._QMtest_0Ept1_decl_tgt_ref_ptr = weak constant %struct.__tgt_offload_entry { ptr @_QMtest_0Ept1_decl_tgt_ref_ptr, ptr @.omp_offloading.entry_name{{.*}}, i64 8, i32 1, i32 0 }, section "omp_offloading_entries", align 1
104104
// CHECK-DAG: !{{.*}} = !{i32 {{.*}}, !"_QMtest_0Ept1_decl_tgt_ref_ptr", i32 {{.*}}, i32 {{.*}}}
105-
llvm.mlir.global external @_QMtest_0Ept1() {addr_space = 0 : i32, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)> {
106-
%0 = llvm.mlir.zero : !llvm.ptr<i32>
105+
llvm.mlir.global external @_QMtest_0Ept1() {addr_space = 0 : i32, omp.declare_target = #omp.declaretarget<device_type = (any), capture_clause = (link)>} : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)> {
106+
%0 = llvm.mlir.zero : !llvm.ptr
107107
%1 = llvm.mlir.constant(9 : i32) : i32
108-
%2 = llvm.mlir.zero : !llvm.ptr<i32>
109-
%3 = llvm.getelementptr %2[1] : (!llvm.ptr<i32>) -> !llvm.ptr<i32>
110-
%4 = llvm.ptrtoint %3 : !llvm.ptr<i32> to i64
111-
%5 = llvm.mlir.undef : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
112-
%6 = llvm.insertvalue %4, %5[1] : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
108+
%2 = llvm.mlir.zero : !llvm.ptr
109+
%3 = llvm.getelementptr %2[1] : (!llvm.ptr) -> !llvm.ptr, i32
110+
%4 = llvm.ptrtoint %3 : !llvm.ptr to i64
111+
%5 = llvm.mlir.undef : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
112+
%6 = llvm.insertvalue %4, %5[1] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
113113
%7 = llvm.mlir.constant(20180515 : i32) : i32
114-
%8 = llvm.insertvalue %7, %6[2] : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
114+
%8 = llvm.insertvalue %7, %6[2] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
115115
%9 = llvm.mlir.constant(0 : i32) : i32
116116
%10 = llvm.trunc %9 : i32 to i8
117-
%11 = llvm.insertvalue %10, %8[3] : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
117+
%11 = llvm.insertvalue %10, %8[3] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
118118
%12 = llvm.trunc %1 : i32 to i8
119-
%13 = llvm.insertvalue %12, %11[4] : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
119+
%13 = llvm.insertvalue %12, %11[4] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
120120
%14 = llvm.mlir.constant(1 : i32) : i32
121121
%15 = llvm.trunc %14 : i32 to i8
122-
%16 = llvm.insertvalue %15, %13[5] : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
122+
%16 = llvm.insertvalue %15, %13[5] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
123123
%17 = llvm.mlir.constant(0 : i32) : i32
124124
%18 = llvm.trunc %17 : i32 to i8
125-
%19 = llvm.insertvalue %18, %16[6] : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
126-
%20 = llvm.bitcast %0 : !llvm.ptr<i32> to !llvm.ptr<i32>
127-
%21 = llvm.insertvalue %20, %19[0] : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
128-
llvm.return %21 : !llvm.struct<(ptr<i32>, i64, i32, i8, i8, i8, i8)>
125+
%19 = llvm.insertvalue %18, %16[6] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
126+
%20 = llvm.bitcast %0 : !llvm.ptr to !llvm.ptr
127+
%21 = llvm.insertvalue %20, %19[0] : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
128+
llvm.return %21 : !llvm.struct<(ptr, i64, i32, i8, i8, i8, i8)>
129129
}
130130

131131
// CHECK-DAG: @_QMtest_0Ept2_tar = global i32 5

mlir/test/Target/LLVMIR/omptarget-llvm.mlir

Lines changed: 60 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
llvm.func @_QPopenmp_target_data() {
44
%0 = llvm.mlir.constant(1 : i64) : i64
5-
%1 = llvm.alloca %0 x i32 {bindc_name = "i", in_type = i32, operand_segment_sizes = array<i32: 0, 0>, uniq_name = "_QFopenmp_target_dataEi"} : (i64) -> !llvm.ptr<i32>
6-
%2 = omp.map_info var_ptr(%1 : !llvm.ptr<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<i32> {name = ""}
7-
omp.target_data map_entries(%2 : !llvm.ptr<i32>) {
5+
%1 = llvm.alloca %0 x i32 {bindc_name = "i", in_type = i32, operand_segment_sizes = array<i32: 0, 0>, uniq_name = "_QFopenmp_target_dataEi"} : (i64) -> !llvm.ptr
6+
%2 = omp.map_info var_ptr(%1 : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
7+
omp.target_data map_entries(%2 : !llvm.ptr) {
88
%3 = llvm.mlir.constant(99 : i32) : i32
9-
llvm.store %3, %1 : !llvm.ptr<i32>
9+
llvm.store %3, %1 : i32, !llvm.ptr
1010
omp.terminator
1111
}
1212
llvm.return
@@ -38,15 +38,15 @@ llvm.func @_QPopenmp_target_data() {
3838

3939
// -----
4040

41-
llvm.func @_QPopenmp_target_data_region(%1 : !llvm.ptr<array<1024 x i32>>) {
42-
%2 = omp.map_info var_ptr(%1 : !llvm.ptr<array<1024 x i32>>, !llvm.array<1024 x i32>) map_clauses(from) capture(ByRef) -> !llvm.ptr<array<1024 x i32>> {name = ""}
43-
omp.target_data map_entries(%2 : !llvm.ptr<array<1024 x i32>>) {
41+
llvm.func @_QPopenmp_target_data_region(%1 : !llvm.ptr) {
42+
%2 = omp.map_info var_ptr(%1 : !llvm.ptr, !llvm.array<1024 x i32>) map_clauses(from) capture(ByRef) -> !llvm.ptr {name = ""}
43+
omp.target_data map_entries(%2 : !llvm.ptr) {
4444
%3 = llvm.mlir.constant(99 : i32) : i32
4545
%4 = llvm.mlir.constant(1 : i64) : i64
4646
%5 = llvm.mlir.constant(1 : i64) : i64
4747
%6 = llvm.mlir.constant(0 : i64) : i64
48-
%7 = llvm.getelementptr %1[0, %6] : (!llvm.ptr<array<1024 x i32>>, i64) -> !llvm.ptr<i32>
49-
llvm.store %3, %7 : !llvm.ptr<i32>
48+
%7 = llvm.getelementptr %1[0, %6] : (!llvm.ptr, i64) -> !llvm.ptr, !llvm.array<1024 x i32>
49+
llvm.store %3, %7 : i32, !llvm.ptr
5050
omp.terminator
5151
}
5252
llvm.return
@@ -79,29 +79,29 @@ llvm.func @_QPopenmp_target_data_region(%1 : !llvm.ptr<array<1024 x i32>>) {
7979

8080
// -----
8181

82-
llvm.func @_QPomp_target_enter_exit(%1 : !llvm.ptr<array<1024 x i32>>, %3 : !llvm.ptr<array<512 x i32>>) {
82+
llvm.func @_QPomp_target_enter_exit(%1 : !llvm.ptr, %3 : !llvm.ptr) {
8383
%4 = llvm.mlir.constant(1 : i64) : i64
84-
%5 = llvm.alloca %4 x i32 {bindc_name = "dvc", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_enter_exitEdvc"} : (i64) -> !llvm.ptr<i32>
84+
%5 = llvm.alloca %4 x i32 {bindc_name = "dvc", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_enter_exitEdvc"} : (i64) -> !llvm.ptr
8585
%6 = llvm.mlir.constant(1 : i64) : i64
86-
%7 = llvm.alloca %6 x i32 {bindc_name = "i", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_enter_exitEi"} : (i64) -> !llvm.ptr<i32>
86+
%7 = llvm.alloca %6 x i32 {bindc_name = "i", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_enter_exitEi"} : (i64) -> !llvm.ptr
8787
%8 = llvm.mlir.constant(5 : i32) : i32
88-
llvm.store %8, %7 : !llvm.ptr<i32>
88+
llvm.store %8, %7 : i32, !llvm.ptr
8989
%9 = llvm.mlir.constant(2 : i32) : i32
90-
llvm.store %9, %5 : !llvm.ptr<i32>
91-
%10 = llvm.load %7 : !llvm.ptr<i32>
90+
llvm.store %9, %5 : i32, !llvm.ptr
91+
%10 = llvm.load %7 : !llvm.ptr -> i32
9292
%11 = llvm.mlir.constant(10 : i32) : i32
9393
%12 = llvm.icmp "slt" %10, %11 : i32
94-
%13 = llvm.load %5 : !llvm.ptr<i32>
95-
%map1 = omp.map_info var_ptr(%1 : !llvm.ptr<array<1024 x i32>>, !llvm.array<1024 x i32>) map_clauses(to) capture(ByRef) -> !llvm.ptr<array<1024 x i32>> {name = ""}
96-
%map2 = omp.map_info var_ptr(%3 : !llvm.ptr<array<512 x i32>>, !llvm.array<512 x i32>) map_clauses(exit_release_or_enter_alloc) capture(ByRef) -> !llvm.ptr<array<512 x i32>> {name = ""}
97-
omp.target_enter_data if(%12 : i1) device(%13 : i32) map_entries(%map1, %map2 : !llvm.ptr<array<1024 x i32>>, !llvm.ptr<array<512 x i32>>)
98-
%14 = llvm.load %7 : !llvm.ptr<i32>
94+
%13 = llvm.load %5 : !llvm.ptr -> i32
95+
%map1 = omp.map_info var_ptr(%1 : !llvm.ptr, !llvm.array<1024 x i32>) map_clauses(to) capture(ByRef) -> !llvm.ptr {name = ""}
96+
%map2 = omp.map_info var_ptr(%3 : !llvm.ptr, !llvm.array<512 x i32>) map_clauses(exit_release_or_enter_alloc) capture(ByRef) -> !llvm.ptr {name = ""}
97+
omp.target_enter_data if(%12 : i1) device(%13 : i32) map_entries(%map1, %map2 : !llvm.ptr, !llvm.ptr)
98+
%14 = llvm.load %7 : !llvm.ptr -> i32
9999
%15 = llvm.mlir.constant(10 : i32) : i32
100100
%16 = llvm.icmp "sgt" %14, %15 : i32
101-
%17 = llvm.load %5 : !llvm.ptr<i32>
102-
%map3 = omp.map_info var_ptr(%1 : !llvm.ptr<array<1024 x i32>>, !llvm.array<1024 x i32>) map_clauses(from) capture(ByRef) -> !llvm.ptr<array<1024 x i32>> {name = ""}
103-
%map4 = omp.map_info var_ptr(%3 : !llvm.ptr<array<512 x i32>>, !llvm.array<512 x i32>) map_clauses(exit_release_or_enter_alloc) capture(ByRef) -> !llvm.ptr<array<512 x i32>> {name = ""}
104-
omp.target_exit_data if(%16 : i1) device(%17 : i32) map_entries(%map3, %map4 : !llvm.ptr<array<1024 x i32>>, !llvm.ptr<array<512 x i32>>)
101+
%17 = llvm.load %5 : !llvm.ptr -> i32
102+
%map3 = omp.map_info var_ptr(%1 : !llvm.ptr, !llvm.array<1024 x i32>) map_clauses(from) capture(ByRef) -> !llvm.ptr {name = ""}
103+
%map4 = omp.map_info var_ptr(%3 : !llvm.ptr, !llvm.array<512 x i32>) map_clauses(exit_release_or_enter_alloc) capture(ByRef) -> !llvm.ptr {name = ""}
104+
omp.target_exit_data if(%16 : i1) device(%17 : i32) map_entries(%map3, %map4 : !llvm.ptr, !llvm.ptr)
105105
llvm.return
106106
}
107107

@@ -177,13 +177,13 @@ llvm.func @_QPomp_target_enter_exit(%1 : !llvm.ptr<array<1024 x i32>>, %3 : !llv
177177

178178
llvm.func @_QPopenmp_target_use_dev_ptr() {
179179
%0 = llvm.mlir.constant(1 : i64) : i64
180-
%a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
181-
%map1 = omp.map_info var_ptr(%a : !llvm.ptr<!llvm.ptr<i32>>, !llvm.ptr<i32>) map_clauses(from) capture(ByRef) -> !llvm.ptr<!llvm.ptr<i32>> {name = ""}
182-
omp.target_data map_entries(%map1 : !llvm.ptr<!llvm.ptr<i32>>) use_device_ptr(%a : !llvm.ptr<!llvm.ptr<i32>>) {
183-
^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>):
180+
%a = llvm.alloca %0 x !llvm.ptr : (i64) -> !llvm.ptr
181+
%map1 = omp.map_info var_ptr(%a : !llvm.ptr, !llvm.ptr) map_clauses(from) capture(ByRef) -> !llvm.ptr {name = ""}
182+
omp.target_data map_entries(%map1 : !llvm.ptr) use_device_ptr(%a : !llvm.ptr) {
183+
^bb0(%arg0: !llvm.ptr):
184184
%1 = llvm.mlir.constant(10 : i32) : i32
185-
%2 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
186-
llvm.store %1, %2 : !llvm.ptr<i32>
185+
%2 = llvm.load %arg0 : !llvm.ptr -> !llvm.ptr
186+
llvm.store %1, %2 : i32, !llvm.ptr
187187
omp.terminator
188188
}
189189
llvm.return
@@ -221,13 +221,13 @@ llvm.func @_QPopenmp_target_use_dev_ptr() {
221221

222222
llvm.func @_QPopenmp_target_use_dev_addr() {
223223
%0 = llvm.mlir.constant(1 : i64) : i64
224-
%a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
225-
%map = omp.map_info var_ptr(%a : !llvm.ptr<!llvm.ptr<i32>>, !llvm.ptr<i32>) map_clauses(from) capture(ByRef) -> !llvm.ptr<!llvm.ptr<i32>> {name = ""}
226-
omp.target_data map_entries(%map : !llvm.ptr<!llvm.ptr<i32>>) use_device_addr(%a : !llvm.ptr<!llvm.ptr<i32>>) {
227-
^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>):
224+
%a = llvm.alloca %0 x !llvm.ptr : (i64) -> !llvm.ptr
225+
%map = omp.map_info var_ptr(%a : !llvm.ptr, !llvm.ptr) map_clauses(from) capture(ByRef) -> !llvm.ptr {name = ""}
226+
omp.target_data map_entries(%map : !llvm.ptr) use_device_addr(%a : !llvm.ptr) {
227+
^bb0(%arg0: !llvm.ptr):
228228
%1 = llvm.mlir.constant(10 : i32) : i32
229-
%2 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
230-
llvm.store %1, %2 : !llvm.ptr<i32>
229+
%2 = llvm.load %arg0 : !llvm.ptr -> !llvm.ptr
230+
llvm.store %1, %2 : i32, !llvm.ptr
231231
omp.terminator
232232
}
233233
llvm.return
@@ -263,12 +263,12 @@ llvm.func @_QPopenmp_target_use_dev_addr() {
263263

264264
llvm.func @_QPopenmp_target_use_dev_addr_no_ptr() {
265265
%0 = llvm.mlir.constant(1 : i64) : i64
266-
%a = llvm.alloca %0 x !llvm.ptr<i32> : (i64) -> !llvm.ptr<i32>
267-
%map = omp.map_info var_ptr(%a : !llvm.ptr<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<i32> {name = ""}
268-
omp.target_data map_entries(%map : !llvm.ptr<i32>) use_device_addr(%a : !llvm.ptr<i32>) {
269-
^bb0(%arg0: !llvm.ptr<i32>):
266+
%a = llvm.alloca %0 x i32 : (i64) -> !llvm.ptr
267+
%map = omp.map_info var_ptr(%a : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
268+
omp.target_data map_entries(%map : !llvm.ptr) use_device_addr(%a : !llvm.ptr) {
269+
^bb0(%arg0: !llvm.ptr):
270270
%1 = llvm.mlir.constant(10 : i32) : i32
271-
llvm.store %1, %arg0 : !llvm.ptr<i32>
271+
llvm.store %1, %arg0 : i32, !llvm.ptr
272272
omp.terminator
273273
}
274274
llvm.return
@@ -303,18 +303,18 @@ llvm.func @_QPopenmp_target_use_dev_addr_no_ptr() {
303303

304304
llvm.func @_QPopenmp_target_use_dev_addr_nomap() {
305305
%0 = llvm.mlir.constant(1 : i64) : i64
306-
%a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
306+
%a = llvm.alloca %0 x !llvm.ptr : (i64) -> !llvm.ptr
307307
%1 = llvm.mlir.constant(1 : i64) : i64
308-
%b = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
309-
%map = omp.map_info var_ptr(%b : !llvm.ptr<!llvm.ptr<i32>>, !llvm.ptr<i32>) map_clauses(from) capture(ByRef) -> !llvm.ptr<!llvm.ptr<i32>> {name = ""}
310-
omp.target_data map_entries(%map : !llvm.ptr<!llvm.ptr<i32>>) use_device_addr(%a : !llvm.ptr<!llvm.ptr<i32>>) {
311-
^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>):
308+
%b = llvm.alloca %0 x !llvm.ptr : (i64) -> !llvm.ptr
309+
%map = omp.map_info var_ptr(%b : !llvm.ptr, !llvm.ptr) map_clauses(from) capture(ByRef) -> !llvm.ptr {name = ""}
310+
omp.target_data map_entries(%map : !llvm.ptr) use_device_addr(%a : !llvm.ptr) {
311+
^bb0(%arg0: !llvm.ptr):
312312
%2 = llvm.mlir.constant(10 : i32) : i32
313-
%3 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
314-
llvm.store %2, %3 : !llvm.ptr<i32>
313+
%3 = llvm.load %arg0 : !llvm.ptr -> !llvm.ptr
314+
llvm.store %2, %3 : i32, !llvm.ptr
315315
%4 = llvm.mlir.constant(20 : i32) : i32
316-
%5 = llvm.load %b : !llvm.ptr<!llvm.ptr<i32>>
317-
llvm.store %4, %5 : !llvm.ptr<i32>
316+
%5 = llvm.load %b : !llvm.ptr -> !llvm.ptr
317+
llvm.store %4, %5 : i32, !llvm.ptr
318318
omp.terminator
319319
}
320320
llvm.return
@@ -359,19 +359,19 @@ llvm.func @_QPopenmp_target_use_dev_addr_nomap() {
359359

360360
llvm.func @_QPopenmp_target_use_dev_both() {
361361
%0 = llvm.mlir.constant(1 : i64) : i64
362-
%a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
362+
%a = llvm.alloca %0 x !llvm.ptr : (i64) -> !llvm.ptr
363363
%1 = llvm.mlir.constant(1 : i64) : i64
364-
%b = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
365-
%map = omp.map_info var_ptr(%a : !llvm.ptr<!llvm.ptr<i32>>, !llvm.ptr<i32>) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<!llvm.ptr<i32>> {name = ""}
366-
%map1 = omp.map_info var_ptr(%b : !llvm.ptr<!llvm.ptr<i32>>, !llvm.ptr<i32>) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<!llvm.ptr<i32>> {name = ""}
367-
omp.target_data map_entries(%map, %map1 : !llvm.ptr<!llvm.ptr<i32>>, !llvm.ptr<!llvm.ptr<i32>>) use_device_ptr(%a : !llvm.ptr<!llvm.ptr<i32>>) use_device_addr(%b : !llvm.ptr<!llvm.ptr<i32>>) {
368-
^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>, %arg1: !llvm.ptr<!llvm.ptr<i32>>):
364+
%b = llvm.alloca %0 x !llvm.ptr : (i64) -> !llvm.ptr
365+
%map = omp.map_info var_ptr(%a : !llvm.ptr, !llvm.ptr) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
366+
%map1 = omp.map_info var_ptr(%b : !llvm.ptr, !llvm.ptr) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
367+
omp.target_data map_entries(%map, %map1 : !llvm.ptr, !llvm.ptr) use_device_ptr(%a : !llvm.ptr) use_device_addr(%b : !llvm.ptr) {
368+
^bb0(%arg0: !llvm.ptr, %arg1: !llvm.ptr):
369369
%2 = llvm.mlir.constant(10 : i32) : i32
370-
%3 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
371-
llvm.store %2, %3 : !llvm.ptr<i32>
370+
%3 = llvm.load %arg0 : !llvm.ptr -> !llvm.ptr
371+
llvm.store %2, %3 : i32, !llvm.ptr
372372
%4 = llvm.mlir.constant(20 : i32) : i32
373-
%5 = llvm.load %arg1 : !llvm.ptr<!llvm.ptr<i32>>
374-
llvm.store %4, %5 : !llvm.ptr<i32>
373+
%5 = llvm.load %arg1 : !llvm.ptr -> !llvm.ptr
374+
llvm.store %4, %5 : i32, !llvm.ptr
375375
omp.terminator
376376
}
377377
llvm.return

mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ module attributes {omp.is_target_device = true} {
55
%0 = llvm.mlir.constant(20 : i32) : i32
66
%1 = llvm.mlir.constant(10 : i32) : i32
77
%2 = llvm.mlir.constant(1 : i64) : i64
8-
%3 = llvm.alloca %2 x i32 {bindc_name = "a", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_regionEa"} : (i64) -> !llvm.ptr<i32>
8+
%3 = llvm.alloca %2 x i32 {bindc_name = "a", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_regionEa"} : (i64) -> !llvm.ptr
99
%4 = llvm.mlir.constant(1 : i64) : i64
10-
%5 = llvm.alloca %4 x i32 {bindc_name = "b", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_regionEb"} : (i64) -> !llvm.ptr<i32>
10+
%5 = llvm.alloca %4 x i32 {bindc_name = "b", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_regionEb"} : (i64) -> !llvm.ptr
1111
%6 = llvm.mlir.constant(1 : i64) : i64
12-
%7 = llvm.alloca %6 x i32 {bindc_name = "c", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_regionEc"} : (i64) -> !llvm.ptr<i32>
13-
llvm.store %1, %3 : !llvm.ptr<i32>
14-
llvm.store %0, %5 : !llvm.ptr<i32>
15-
%map1 = omp.map_info var_ptr(%3 : !llvm.ptr<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<i32> {name = ""}
16-
%map2 = omp.map_info var_ptr(%5 : !llvm.ptr<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<i32> {name = ""}
17-
%map3 = omp.map_info var_ptr(%7 : !llvm.ptr<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<i32> {name = ""}
18-
omp.target map_entries(%map1, %map2, %map3 : !llvm.ptr<i32>, !llvm.ptr<i32>, !llvm.ptr<i32>) {
19-
%8 = llvm.load %3 : !llvm.ptr<i32>
20-
%9 = llvm.load %5 : !llvm.ptr<i32>
12+
%7 = llvm.alloca %6 x i32 {bindc_name = "c", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFomp_target_regionEc"} : (i64) -> !llvm.ptr
13+
llvm.store %1, %3 : i32, !llvm.ptr
14+
llvm.store %0, %5 : i32, !llvm.ptr
15+
%map1 = omp.map_info var_ptr(%3 : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
16+
%map2 = omp.map_info var_ptr(%5 : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
17+
%map3 = omp.map_info var_ptr(%7 : !llvm.ptr, i32) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
18+
omp.target map_entries(%map1, %map2, %map3 : !llvm.ptr, !llvm.ptr, !llvm.ptr) {
19+
%8 = llvm.load %3 : !llvm.ptr -> i32
20+
%9 = llvm.load %5 : !llvm.ptr -> i32
2121
%10 = llvm.add %8, %9 : i32
22-
llvm.store %10, %7 : !llvm.ptr<i32>
22+
llvm.store %10, %7 : i32, !llvm.ptr
2323
omp.terminator
2424
}
2525
llvm.return

0 commit comments

Comments
 (0)