|
2 | 2 |
|
3 | 3 | llvm.func @_QPopenmp_target_data() {
|
4 | 4 | %0 = llvm.mlir.constant(1 : i64) : i64
|
5 |
| - %1 = llvm.alloca %0 x i32 {bindc_name = "i", in_type = i32, operandSegmentSizes = array<i32: 0, 0>, uniq_name = "_QFopenmp_target_dataEi"} : (i64) -> !llvm.ptr<i32> |
6 |
| - omp.target_data map((tofrom -> %1 : !llvm.ptr<i32>)) { |
7 |
| - %2 = llvm.mlir.constant(99 : i32) : i32 |
8 |
| - llvm.store %2, %1 : !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<i32> |
| 6 | + %2 = omp.map_info var_ptr(%1 : !llvm.ptr<i32>) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr<i32> {name = ""} |
| 7 | + omp.target_data map_entries(%2 : !llvm.ptr<i32>) { |
| 8 | + %3 = llvm.mlir.constant(99 : i32) : i32 |
| 9 | + llvm.store %3, %1 : !llvm.ptr<i32> |
9 | 10 | omp.terminator
|
10 | 11 | }
|
11 | 12 | llvm.return
|
@@ -38,13 +39,14 @@ llvm.func @_QPopenmp_target_data() {
|
38 | 39 | // -----
|
39 | 40 |
|
40 | 41 | llvm.func @_QPopenmp_target_data_region(%1 : !llvm.ptr<array<1024 x i32>>) {
|
41 |
| - omp.target_data map((from -> %1 : !llvm.ptr<array<1024 x i32>>)) { |
42 |
| - %2 = llvm.mlir.constant(99 : i32) : i32 |
43 |
| - %3 = llvm.mlir.constant(1 : i64) : i64 |
| 42 | + %2 = omp.map_info var_ptr(%1 : !llvm.ptr<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>>) { |
| 44 | + %3 = llvm.mlir.constant(99 : i32) : i32 |
44 | 45 | %4 = llvm.mlir.constant(1 : i64) : i64
|
45 |
| - %5 = llvm.mlir.constant(0 : i64) : i64 |
46 |
| - %6 = llvm.getelementptr %1[0, %5] : (!llvm.ptr<array<1024 x i32>>, i64) -> !llvm.ptr<i32> |
47 |
| - llvm.store %2, %6 : !llvm.ptr<i32> |
| 46 | + %5 = llvm.mlir.constant(1 : i64) : i64 |
| 47 | + %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 | 50 | omp.terminator
|
49 | 51 | }
|
50 | 52 | llvm.return
|
@@ -90,12 +92,16 @@ llvm.func @_QPomp_target_enter_exit(%1 : !llvm.ptr<array<1024 x i32>>, %3 : !llv
|
90 | 92 | %11 = llvm.mlir.constant(10 : i32) : i32
|
91 | 93 | %12 = llvm.icmp "slt" %10, %11 : i32
|
92 | 94 | %13 = llvm.load %5 : !llvm.ptr<i32>
|
93 |
| - omp.target_enter_data if(%12 : i1) device(%13 : i32) map((to -> %1 : !llvm.ptr<array<1024 x i32>>), (alloc -> %3 : !llvm.ptr<array<512 x i32>>)) |
| 95 | + %map1 = omp.map_info var_ptr(%1 : !llvm.ptr<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>>) 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>>) |
94 | 98 | %14 = llvm.load %7 : !llvm.ptr<i32>
|
95 | 99 | %15 = llvm.mlir.constant(10 : i32) : i32
|
96 | 100 | %16 = llvm.icmp "sgt" %14, %15 : i32
|
97 | 101 | %17 = llvm.load %5 : !llvm.ptr<i32>
|
98 |
| - omp.target_exit_data if(%16 : i1) device(%17 : i32) map((from -> %1 : !llvm.ptr<array<1024 x i32>>), (release -> %3 : !llvm.ptr<array<512 x i32>>)) |
| 102 | + %map3 = omp.map_info var_ptr(%1 : !llvm.ptr<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>>) 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>>) |
99 | 105 | llvm.return
|
100 | 106 | }
|
101 | 107 |
|
@@ -172,7 +178,8 @@ llvm.func @_QPomp_target_enter_exit(%1 : !llvm.ptr<array<1024 x i32>>, %3 : !llv
|
172 | 178 | llvm.func @_QPopenmp_target_use_dev_ptr() {
|
173 | 179 | %0 = llvm.mlir.constant(1 : i64) : i64
|
174 | 180 | %a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
|
175 |
| - omp.target_data map((from -> %a : !llvm.ptr<!llvm.ptr<i32>>)) use_device_ptr(%a : !llvm.ptr<!llvm.ptr<i32>>) { |
| 181 | + %map1 = omp.map_info var_ptr(%a : !llvm.ptr<!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>>) { |
176 | 183 | ^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>):
|
177 | 184 | %1 = llvm.mlir.constant(10 : i32) : i32
|
178 | 185 | %2 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
|
@@ -215,7 +222,8 @@ llvm.func @_QPopenmp_target_use_dev_ptr() {
|
215 | 222 | llvm.func @_QPopenmp_target_use_dev_addr() {
|
216 | 223 | %0 = llvm.mlir.constant(1 : i64) : i64
|
217 | 224 | %a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
|
218 |
| - omp.target_data map((from -> %a : !llvm.ptr<!llvm.ptr<i32>>)) use_device_addr(%a : !llvm.ptr<!llvm.ptr<i32>>) { |
| 225 | + %map = omp.map_info var_ptr(%a : !llvm.ptr<!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>>) { |
219 | 227 | ^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>):
|
220 | 228 | %1 = llvm.mlir.constant(10 : i32) : i32
|
221 | 229 | %2 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
|
@@ -256,7 +264,8 @@ llvm.func @_QPopenmp_target_use_dev_addr() {
|
256 | 264 | llvm.func @_QPopenmp_target_use_dev_addr_no_ptr() {
|
257 | 265 | %0 = llvm.mlir.constant(1 : i64) : i64
|
258 | 266 | %a = llvm.alloca %0 x !llvm.ptr<i32> : (i64) -> !llvm.ptr<i32>
|
259 |
| - omp.target_data map((tofrom -> %a : !llvm.ptr<i32>)) use_device_addr(%a : !llvm.ptr<i32>) { |
| 267 | + %map = omp.map_info var_ptr(%a : !llvm.ptr<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>) { |
260 | 269 | ^bb0(%arg0: !llvm.ptr<i32>):
|
261 | 270 | %1 = llvm.mlir.constant(10 : i32) : i32
|
262 | 271 | llvm.store %1, %arg0 : !llvm.ptr<i32>
|
@@ -297,7 +306,8 @@ llvm.func @_QPopenmp_target_use_dev_addr_nomap() {
|
297 | 306 | %a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
|
298 | 307 | %1 = llvm.mlir.constant(1 : i64) : i64
|
299 | 308 | %b = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
|
300 |
| - omp.target_data map((from -> %b : !llvm.ptr<!llvm.ptr<i32>>)) use_device_addr(%a : !llvm.ptr<!llvm.ptr<i32>>) { |
| 309 | + %map = omp.map_info var_ptr(%b : !llvm.ptr<!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>>) { |
301 | 311 | ^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>):
|
302 | 312 | %2 = llvm.mlir.constant(10 : i32) : i32
|
303 | 313 | %3 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
|
@@ -352,7 +362,9 @@ llvm.func @_QPopenmp_target_use_dev_both() {
|
352 | 362 | %a = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
|
353 | 363 | %1 = llvm.mlir.constant(1 : i64) : i64
|
354 | 364 | %b = llvm.alloca %0 x !llvm.ptr<!llvm.ptr<i32>> : (i64) -> !llvm.ptr<!llvm.ptr<i32>>
|
355 |
| - omp.target_data map((tofrom -> %a : !llvm.ptr<!llvm.ptr<i32>>), (tofrom -> %b : !llvm.ptr<!llvm.ptr<i32>>)) use_device_ptr(%a : !llvm.ptr<!llvm.ptr<i32>>) use_device_addr(%b : !llvm.ptr<!llvm.ptr<i32>>) { |
| 365 | + %map = omp.map_info var_ptr(%a : !llvm.ptr<!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>>) 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>>) { |
356 | 368 | ^bb0(%arg0: !llvm.ptr<!llvm.ptr<i32>>, %arg1: !llvm.ptr<!llvm.ptr<i32>>):
|
357 | 369 | %2 = llvm.mlir.constant(10 : i32) : i32
|
358 | 370 | %3 = llvm.load %arg0 : !llvm.ptr<!llvm.ptr<i32>>
|
|
0 commit comments