Skip to content

Commit a3800a6

Browse files
authored
[MLIR][OpenMP] NFC: Sort clauses alphabetically (2/2) (llvm#101194)
This patch sorts the clause lists for the following OpenMP operations: - omp.taskloop - omp.taskgroup - omp.target_data - omp.target_enter_data - omp.target_exit_data - omp.target_update - omp.target This change results in the reordering of operation arguments, so impacted unit tests are updated accordingly.
1 parent b3b4696 commit a3800a6

File tree

8 files changed

+81
-88
lines changed

8 files changed

+81
-88
lines changed

flang/test/Fir/convert-to-llvm-openmp-and-fir.fir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ func.func @_QPomp_target() {
472472
// CHECK: %[[UPPER:.*]] = llvm.mlir.constant(511 : index) : i64
473473
// CHECK: %[[BOUNDS:.*]] = omp.map.bounds lower_bound(%[[LOWER]] : i64) upper_bound(%[[UPPER]] : i64) extent(%[[EXTENT]] : i64) stride(%[[STRIDE]] : i64) start_idx(%[[STRIDE]] : i64)
474474
// CHECK: %[[MAP:.*]] = omp.map.info var_ptr(%[[VAL_1]] : !llvm.ptr, !llvm.array<512 x i32>) map_clauses(tofrom) capture(ByRef) bounds(%[[BOUNDS]]) -> !llvm.ptr {name = "a"}
475-
// CHECK: omp.target thread_limit(%[[VAL_2]] : i32) map_entries(%[[MAP]] -> %[[ARG_0:.*]] : !llvm.ptr) {
475+
// CHECK: omp.target map_entries(%[[MAP]] -> %[[ARG_0:.*]] : !llvm.ptr) thread_limit(%[[VAL_2]] : i32) {
476476
// CHECK: ^bb0(%[[ARG_0]]: !llvm.ptr):
477477
// CHECK: %[[VAL_3:.*]] = llvm.mlir.constant(10 : i32) : i32
478478
// CHECK: %[[VAL_4:.*]] = llvm.mlir.constant(1 : i64) : i64

flang/test/Lower/OpenMP/target.f90

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ subroutine omp_target_enter_nowait
6666
integer :: a(1024)
6767
!CHECK: %[[BOUNDS:.*]] = omp.map.bounds lower_bound({{.*}}) upper_bound({{.*}}) extent({{.*}}) stride({{.*}}) start_idx({{.*}})
6868
!CHECK: %[[MAP:.*]] = omp.map.info var_ptr({{.*}}) map_clauses(to) capture(ByRef) bounds(%[[BOUNDS]]) -> !fir.ref<!fir.array<1024xi32>> {name = "a"}
69-
!CHECK: omp.target_enter_data nowait map_entries(%[[MAP]] : !fir.ref<!fir.array<1024xi32>>)
69+
!CHECK: omp.target_enter_data map_entries(%[[MAP]] : !fir.ref<!fir.array<1024xi32>>) nowait
7070
!$omp target enter data map(to: a) nowait
7171
end subroutine omp_target_enter_nowait
7272

@@ -278,7 +278,7 @@ subroutine omp_target_update_nowait
278278
!CHECK-DAG: %[[A_DECL:.*]]:2 = hlfir.declare %{{.*}}(%{{.*}})
279279
!CHECK-DAG: %[[BOUNDS:.*]] = omp.map.bounds
280280

281-
!CHECK: omp.target_update nowait map_entries
281+
!CHECK: omp.target_update map_entries({{.*}}) nowait
282282
!$omp target update from(a) nowait
283283
end subroutine omp_target_update_nowait
284284

@@ -493,7 +493,7 @@ subroutine omp_target_thread_limit
493493
integer :: a
494494
!CHECK: %[[MAP:.*]] = omp.map.info var_ptr({{.*}}) map_clauses(tofrom) capture(ByRef) -> !fir.ref<i32> {name = "a"}
495495
!CHECK: %[[VAL_1:.*]] = arith.constant 64 : i32
496-
!CHECK: omp.target thread_limit(%[[VAL_1]] : i32) map_entries(%[[MAP]] -> %{{.*}} : !fir.ref<i32>) {
496+
!CHECK: omp.target map_entries(%[[MAP]] -> %{{.*}} : !fir.ref<i32>) thread_limit(%[[VAL_1]] : i32) {
497497
!CHECK: ^bb0(%{{.*}}: !fir.ref<i32>):
498498
!$omp target map(tofrom: a) thread_limit(64)
499499
a = 10
@@ -512,7 +512,7 @@ subroutine omp_target_device_ptr
512512
type(c_ptr) :: a
513513
integer, target :: b
514514
!CHECK: %[[MAP:.*]] = omp.map.info var_ptr({{.*}}) map_clauses(tofrom) capture(ByRef) -> {{.*}} {name = "a"}
515-
!CHECK: omp.target_data use_device_ptr({{.*}}) map_entries(%[[MAP]]{{.*}}
515+
!CHECK: omp.target_data map_entries(%[[MAP]]{{.*}}) use_device_ptr({{.*}})
516516
!$omp target data map(tofrom: a) use_device_ptr(a)
517517
!CHECK: ^bb0(%[[VAL_1:.*]]: !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>):
518518
!CHECK: {{.*}} = fir.coordinate_of %[[VAL_1:.*]], {{.*}} : (!fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>, !fir.field) -> !fir.ref<i64>
@@ -533,7 +533,7 @@ subroutine omp_target_device_addr
533533
!CHECK: %[[VAL_0_DECL:.*]]:2 = hlfir.declare %0 {fortran_attrs = #fir.var_attrs<pointer>, uniq_name = "_QFomp_target_device_addrEa"} : (!fir.ref<!fir.box<!fir.ptr<i32>>>) -> (!fir.ref<!fir.box<!fir.ptr<i32>>>, !fir.ref<!fir.box<!fir.ptr<i32>>>)
534534
!CHECK: %[[MAP_MEMBERS:.*]] = omp.map.info var_ptr({{.*}} : !fir.ref<!fir.box<!fir.ptr<i32>>>, i32) var_ptr_ptr({{.*}} : !fir.llvm_ptr<!fir.ref<i32>>) map_clauses(tofrom) capture(ByRef) -> !fir.llvm_ptr<!fir.ref<i32>> {name = ""}
535535
!CHECK: %[[MAP:.*]] = omp.map.info var_ptr({{.*}} : !fir.ref<!fir.box<!fir.ptr<i32>>>, !fir.box<!fir.ptr<i32>>) map_clauses(tofrom) capture(ByRef) members(%[[MAP_MEMBERS]] : [0] : !fir.llvm_ptr<!fir.ref<i32>>) -> !fir.ref<!fir.box<!fir.ptr<i32>>> {name = "a"}
536-
!CHECK: omp.target_data use_device_addr(%[[VAL_0_DECL]]#1 : !fir.ref<!fir.box<!fir.ptr<i32>>>) map_entries(%[[MAP_MEMBERS]], %[[MAP]] : {{.*}}) {
536+
!CHECK: omp.target_data map_entries(%[[MAP_MEMBERS]], %[[MAP]] : {{.*}}) use_device_addr(%[[VAL_0_DECL]]#1 : !fir.ref<!fir.box<!fir.ptr<i32>>>) {
537537
!$omp target data map(tofrom: a) use_device_addr(a)
538538
!CHECK: ^bb0(%[[VAL_1:.*]]: !fir.ref<!fir.box<!fir.ptr<i32>>>):
539539
!CHECK: %[[VAL_1_DECL:.*]]:2 = hlfir.declare %[[VAL_1]] {fortran_attrs = #fir.var_attrs<pointer>, uniq_name = "_QFomp_target_device_addrEa"} : (!fir.ref<!fir.box<!fir.ptr<i32>>>) -> (!fir.ref<!fir.box<!fir.ptr<i32>>>, !fir.ref<!fir.box<!fir.ptr<i32>>>)

flang/test/Lower/OpenMP/use-device-ptr-to-use-device-addr.f90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
! functionality
99

1010
!CHECK: func.func @{{.*}}only_use_device_ptr()
11-
!CHECK: omp.target_data use_device_ptr(%{{.*}} : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>) use_device_addr(%{{.*}}, %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>, !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>) {
11+
!CHECK: omp.target_data use_device_addr(%{{.*}}, %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>, !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>) use_device_ptr(%{{.*}} : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>) {
1212
!CHECK: ^bb0(%{{.*}}: !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>, %{{.*}}: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>, %{{.*}}: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>):
1313
subroutine only_use_device_ptr
1414
use iso_c_binding
@@ -21,7 +21,7 @@ subroutine only_use_device_ptr
2121
end subroutine
2222

2323
!CHECK: func.func @{{.*}}mix_use_device_ptr_and_addr()
24-
!CHECK: omp.target_data use_device_ptr({{.*}} : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>) use_device_addr(%{{.*}}, %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) {
24+
!CHECK: omp.target_data use_device_addr(%{{.*}}, %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) use_device_ptr({{.*}} : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>) {
2525
!CHECK: ^bb0(%{{.*}}: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>, %{{.*}}: !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>, %{{.*}}: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>):
2626
subroutine mix_use_device_ptr_and_addr
2727
use iso_c_binding
@@ -47,7 +47,7 @@ subroutine only_use_device_addr
4747
end subroutine
4848

4949
!CHECK: func.func @{{.*}}mix_use_device_ptr_and_addr_and_map()
50-
!CHECK: omp.target_data use_device_ptr(%{{.*}} : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>) use_device_addr(%{{.*}}, %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) map_entries(%{{.*}}, %{{.*}} : !fir.ref<i32>, !fir.ref<i32>) {
50+
!CHECK: omp.target_data map_entries(%{{.*}}, %{{.*}} : !fir.ref<i32>, !fir.ref<i32>) use_device_addr(%{{.*}}, %{{.*}} : !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) use_device_ptr(%{{.*}} : !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>) {
5151
!CHECK: ^bb0(%{{.*}}: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>, %{{.*}}: !fir.ref<!fir.type<_QM__fortran_builtinsT__builtin_c_ptr{__address:i64}>>, %{{.*}}: !fir.ref<!fir.box<!fir.ptr<!fir.array<?xi32>>>>):
5252
subroutine mix_use_device_ptr_and_addr_and_map
5353
use iso_c_binding

mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -590,13 +590,12 @@ def TaskloopOp : OpenMP_Op<"taskloop", traits = [
590590
DeclareOpInterfaceMethods<LoopWrapperInterface>, RecursiveMemoryEffects,
591591
SingleBlock
592592
], clauses = [
593-
// TODO: Sort clauses alphabetically.
594-
OpenMP_IfClause, OpenMP_FinalClause, OpenMP_UntiedClause,
595-
OpenMP_MergeableClause,
596-
OpenMP_InReductionClauseSkip<extraClassDeclaration = true>,
593+
OpenMP_AllocateClause, OpenMP_FinalClause, OpenMP_GrainsizeClause,
594+
OpenMP_IfClause, OpenMP_InReductionClauseSkip<extraClassDeclaration = true>,
595+
OpenMP_MergeableClause, OpenMP_NogroupClause, OpenMP_NumTasksClause,
596+
OpenMP_PriorityClause, OpenMP_PrivateClause,
597597
OpenMP_ReductionClauseSkip<extraClassDeclaration = true>,
598-
OpenMP_PriorityClause, OpenMP_AllocateClause, OpenMP_GrainsizeClause,
599-
OpenMP_NumTasksClause, OpenMP_NogroupClause, OpenMP_PrivateClause
598+
OpenMP_UntiedClause
600599
], singleRegion = true> {
601600
let summary = "taskloop construct";
602601
let description = [{
@@ -667,8 +666,7 @@ def TaskloopOp : OpenMP_Op<"taskloop", traits = [
667666
def TaskgroupOp : OpenMP_Op<"taskgroup", traits = [
668667
AttrSizedOperandSegments, AutomaticAllocationScope
669668
], clauses = [
670-
// TODO: Sort clauses alphabetically.
671-
OpenMP_TaskReductionClause, OpenMP_AllocateClause
669+
OpenMP_AllocateClause, OpenMP_TaskReductionClause
672670
], singleRegion = true> {
673671
let summary = "taskgroup construct";
674672
let description = [{
@@ -948,9 +946,8 @@ def MapInfoOp : OpenMP_Op<"map.info", [AttrSizedOperandSegments]> {
948946
def TargetDataOp: OpenMP_Op<"target_data", traits = [
949947
AttrSizedOperandSegments
950948
], clauses = [
951-
// TODO: Sort clauses alphabetically.
952-
OpenMP_IfClause, OpenMP_DeviceClause, OpenMP_UseDevicePtrClause,
953-
OpenMP_UseDeviceAddrClause, OpenMP_MapClause
949+
OpenMP_DeviceClause, OpenMP_IfClause, OpenMP_MapClause,
950+
OpenMP_UseDeviceAddrClause, OpenMP_UseDevicePtrClause
954951
], singleRegion = true> {
955952
let summary = "target data construct";
956953
let description = [{
@@ -981,9 +978,8 @@ def TargetDataOp: OpenMP_Op<"target_data", traits = [
981978
def TargetEnterDataOp: OpenMP_Op<"target_enter_data", traits = [
982979
AttrSizedOperandSegments
983980
], clauses = [
984-
// TODO: Sort clauses alphabetically.
985-
OpenMP_IfClause, OpenMP_DeviceClause, OpenMP_DependClause,
986-
OpenMP_NowaitClause, OpenMP_MapClause
981+
OpenMP_DependClause, OpenMP_DeviceClause, OpenMP_IfClause, OpenMP_MapClause,
982+
OpenMP_NowaitClause
987983
]> {
988984
let summary = "target enter data construct";
989985
let description = [{
@@ -1010,9 +1006,8 @@ def TargetEnterDataOp: OpenMP_Op<"target_enter_data", traits = [
10101006
def TargetExitDataOp: OpenMP_Op<"target_exit_data", traits = [
10111007
AttrSizedOperandSegments
10121008
], clauses = [
1013-
// TODO: Sort clauses alphabetically.
1014-
OpenMP_IfClause, OpenMP_DeviceClause, OpenMP_DependClause,
1015-
OpenMP_NowaitClause, OpenMP_MapClause
1009+
OpenMP_DependClause, OpenMP_DeviceClause, OpenMP_IfClause, OpenMP_MapClause,
1010+
OpenMP_NowaitClause
10161011
]> {
10171012
let summary = "target exit data construct";
10181013
let description = [{
@@ -1039,9 +1034,8 @@ def TargetExitDataOp: OpenMP_Op<"target_exit_data", traits = [
10391034
def TargetUpdateOp: OpenMP_Op<"target_update", traits = [
10401035
AttrSizedOperandSegments
10411036
], clauses = [
1042-
// TODO: Sort clauses alphabetically.
1043-
OpenMP_IfClause, OpenMP_DeviceClause, OpenMP_DependClause,
1044-
OpenMP_NowaitClause, OpenMP_MapClause
1037+
OpenMP_DependClause, OpenMP_DeviceClause, OpenMP_IfClause, OpenMP_MapClause,
1038+
OpenMP_NowaitClause
10451039
]> {
10461040
let summary = "target update construct";
10471041
let description = [{
@@ -1077,11 +1071,10 @@ def TargetOp : OpenMP_Op<"target", traits = [
10771071
AttrSizedOperandSegments, IsolatedFromAbove, OutlineableOpenMPOpInterface
10781072
], clauses = [
10791073
// TODO: Complete clause list (defaultmap, uses_allocators).
1080-
// TODO: Sort clauses alphabetically.
1081-
OpenMP_IfClause, OpenMP_DeviceClause, OpenMP_ThreadLimitClause,
1082-
OpenMP_DependClause, OpenMP_NowaitClause, OpenMP_IsDevicePtrClause,
1083-
OpenMP_HasDeviceAddrClause, OpenMP_MapClause, OpenMP_PrivateClause,
1084-
OpenMP_AllocateClause, OpenMP_InReductionClause
1074+
OpenMP_AllocateClause, OpenMP_DependClause, OpenMP_DeviceClause,
1075+
OpenMP_HasDeviceAddrClause, OpenMP_IfClause, OpenMP_InReductionClause,
1076+
OpenMP_IsDevicePtrClause, OpenMP_MapClause, OpenMP_NowaitClause,
1077+
OpenMP_PrivateClause, OpenMP_ThreadLimitClause
10851078
], singleRegion = true> {
10861079
let summary = "target construct";
10871080
let description = [{

mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1370,9 +1370,9 @@ static LogicalResult verifyMapClause(Operation *op, OperandRange mapVars) {
13701370

13711371
void TargetDataOp::build(OpBuilder &builder, OperationState &state,
13721372
const TargetDataOperands &clauses) {
1373-
TargetDataOp::build(builder, state, clauses.ifVar, clauses.device,
1374-
clauses.useDevicePtrVars, clauses.useDeviceAddrVars,
1375-
clauses.mapVars);
1373+
TargetDataOp::build(builder, state, clauses.device, clauses.ifVar,
1374+
clauses.mapVars, clauses.useDeviceAddrVars,
1375+
clauses.useDevicePtrVars);
13761376
}
13771377

13781378
LogicalResult TargetDataOp::verify() {
@@ -1393,9 +1393,10 @@ void TargetEnterDataOp::build(
13931393
OpBuilder &builder, OperationState &state,
13941394
const TargetEnterExitUpdateDataOperands &clauses) {
13951395
MLIRContext *ctx = builder.getContext();
1396-
TargetEnterDataOp::build(builder, state, clauses.ifVar, clauses.device,
1396+
TargetEnterDataOp::build(builder, state,
13971397
makeArrayAttr(ctx, clauses.dependKinds),
1398-
clauses.dependVars, clauses.nowait, clauses.mapVars);
1398+
clauses.dependVars, clauses.device, clauses.ifVar,
1399+
clauses.mapVars, clauses.nowait);
13991400
}
14001401

14011402
LogicalResult TargetEnterDataOp::verify() {
@@ -1412,9 +1413,10 @@ LogicalResult TargetEnterDataOp::verify() {
14121413
void TargetExitDataOp::build(OpBuilder &builder, OperationState &state,
14131414
const TargetEnterExitUpdateDataOperands &clauses) {
14141415
MLIRContext *ctx = builder.getContext();
1415-
TargetExitDataOp::build(builder, state, clauses.ifVar, clauses.device,
1416+
TargetExitDataOp::build(builder, state,
14161417
makeArrayAttr(ctx, clauses.dependKinds),
1417-
clauses.dependVars, clauses.nowait, clauses.mapVars);
1418+
clauses.dependVars, clauses.device, clauses.ifVar,
1419+
clauses.mapVars, clauses.nowait);
14181420
}
14191421

14201422
LogicalResult TargetExitDataOp::verify() {
@@ -1431,9 +1433,9 @@ LogicalResult TargetExitDataOp::verify() {
14311433
void TargetUpdateOp::build(OpBuilder &builder, OperationState &state,
14321434
const TargetEnterExitUpdateDataOperands &clauses) {
14331435
MLIRContext *ctx = builder.getContext();
1434-
TargetUpdateOp::build(builder, state, clauses.ifVar, clauses.device,
1435-
makeArrayAttr(ctx, clauses.dependKinds),
1436-
clauses.dependVars, clauses.nowait, clauses.mapVars);
1436+
TargetUpdateOp::build(builder, state, makeArrayAttr(ctx, clauses.dependKinds),
1437+
clauses.dependVars, clauses.device, clauses.ifVar,
1438+
clauses.mapVars, clauses.nowait);
14371439
}
14381440

14391441
LogicalResult TargetUpdateOp::verify() {
@@ -1452,14 +1454,13 @@ void TargetOp::build(OpBuilder &builder, OperationState &state,
14521454
MLIRContext *ctx = builder.getContext();
14531455
// TODO Store clauses in op: allocateVars, allocatorVars, inReductionVars,
14541456
// inReductionByref, inReductionSyms.
1455-
TargetOp::build(builder, state, clauses.ifVar, clauses.device,
1456-
clauses.threadLimit, makeArrayAttr(ctx, clauses.dependKinds),
1457-
clauses.dependVars, clauses.nowait, clauses.isDevicePtrVars,
1458-
clauses.hasDeviceAddrVars, clauses.mapVars,
1459-
clauses.privateVars, makeArrayAttr(ctx, clauses.privateSyms),
1460-
/*allocate_vars=*/{}, /*allocator_vars=*/{},
1457+
TargetOp::build(builder, state, /*allocate_vars=*/{}, /*allocator_vars=*/{},
1458+
makeArrayAttr(ctx, clauses.dependKinds), clauses.dependVars,
1459+
clauses.device, clauses.hasDeviceAddrVars, clauses.ifVar,
14611460
/*in_reduction_vars=*/{}, /*in_reduction_byref=*/nullptr,
1462-
/*in_reduction_syms=*/nullptr);
1461+
/*in_reduction_syms=*/nullptr, clauses.isDevicePtrVars,
1462+
clauses.mapVars, clauses.nowait, clauses.privateVars,
1463+
makeArrayAttr(ctx, clauses.privateSyms), clauses.threadLimit);
14631464
}
14641465

14651466
LogicalResult TargetOp::verify() {
@@ -1961,10 +1962,10 @@ LogicalResult TaskOp::verify() {
19611962
void TaskgroupOp::build(OpBuilder &builder, OperationState &state,
19621963
const TaskgroupOperands &clauses) {
19631964
MLIRContext *ctx = builder.getContext();
1964-
TaskgroupOp::build(builder, state, clauses.taskReductionVars,
1965+
TaskgroupOp::build(builder, state, clauses.allocateVars,
1966+
clauses.allocatorVars, clauses.taskReductionVars,
19651967
makeDenseBoolArrayAttr(ctx, clauses.taskReductionByref),
1966-
makeArrayAttr(ctx, clauses.taskReductionSyms),
1967-
clauses.allocateVars, clauses.allocatorVars);
1968+
makeArrayAttr(ctx, clauses.taskReductionSyms));
19681969
}
19691970

19701971
LogicalResult TaskgroupOp::verify() {
@@ -1981,16 +1982,15 @@ void TaskloopOp::build(OpBuilder &builder, OperationState &state,
19811982
const TaskloopOperands &clauses) {
19821983
MLIRContext *ctx = builder.getContext();
19831984
// TODO Store clauses in op: privateVars, privateSyms.
1984-
TaskloopOp::build(builder, state, clauses.ifVar, clauses.final,
1985-
clauses.untied, clauses.mergeable, clauses.inReductionVars,
1986-
makeDenseBoolArrayAttr(ctx, clauses.inReductionByref),
1987-
makeArrayAttr(ctx, clauses.inReductionSyms),
1988-
clauses.reductionVars,
1989-
makeDenseBoolArrayAttr(ctx, clauses.reductionByref),
1990-
makeArrayAttr(ctx, clauses.reductionSyms), clauses.priority,
1991-
clauses.allocateVars, clauses.allocatorVars,
1992-
clauses.grainsize, clauses.numTasks, clauses.nogroup,
1993-
/*private_vars=*/{}, /*private_syms=*/nullptr);
1985+
TaskloopOp::build(
1986+
builder, state, clauses.allocateVars, clauses.allocatorVars,
1987+
clauses.final, clauses.grainsize, clauses.ifVar, clauses.inReductionVars,
1988+
makeDenseBoolArrayAttr(ctx, clauses.inReductionByref),
1989+
makeArrayAttr(ctx, clauses.inReductionSyms), clauses.mergeable,
1990+
clauses.nogroup, clauses.numTasks, clauses.priority, /*private_vars=*/{},
1991+
/*private_syms=*/nullptr, clauses.reductionVars,
1992+
makeDenseBoolArrayAttr(ctx, clauses.reductionByref),
1993+
makeArrayAttr(ctx, clauses.reductionSyms), clauses.untied);
19941994
}
19951995

19961996
SmallVector<Value> TaskloopOp::getAllReductionVars() {

mlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ llvm.func @_QPomp_target_data_region(%a : !llvm.ptr, %i : !llvm.ptr) {
253253
// CHECK: %[[VAL_0:.*]] = llvm.mlir.constant(64 : i32) : i32
254254
// CHECK: %[[MAP1:.*]] = omp.map.info var_ptr(%[[ARG_0]] : !llvm.ptr, !llvm.array<1024 x i32>) map_clauses(tofrom) capture(ByRef) -> !llvm.ptr {name = ""}
255255
// CHECK: %[[MAP2:.*]] = omp.map.info var_ptr(%[[ARG_1]] : !llvm.ptr, i32) map_clauses(implicit, exit_release_or_enter_alloc) capture(ByCopy) -> !llvm.ptr {name = ""}
256-
// CHECK: omp.target thread_limit(%[[VAL_0]] : i32) map_entries(%[[MAP1]] -> %[[BB_ARG0:.*]], %[[MAP2]] -> %[[BB_ARG1:.*]] : !llvm.ptr, !llvm.ptr) {
256+
// CHECK: omp.target map_entries(%[[MAP1]] -> %[[BB_ARG0:.*]], %[[MAP2]] -> %[[BB_ARG1:.*]] : !llvm.ptr, !llvm.ptr) thread_limit(%[[VAL_0]] : i32) {
257257
// CHECK: ^bb0(%[[BB_ARG0]]: !llvm.ptr, %[[BB_ARG1]]: !llvm.ptr):
258258
// CHECK: %[[VAL_1:.*]] = llvm.mlir.constant(10 : i32) : i32
259259
// CHECK: llvm.store %[[VAL_1]], %[[BB_ARG1]] : i32, !llvm.ptr

0 commit comments

Comments
 (0)