diff --git a/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td b/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td --- a/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td +++ b/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td @@ -94,12 +94,15 @@ }]; let arguments = (ins Optional:$async, + UnitAttr:$asyncAttr, Variadic:$waitOperands, + UnitAttr:$waitAttr, Optional:$numGangs, Optional:$numWorkers, Optional:$vectorLength, Optional:$ifCond, Optional:$selfCond, + UnitAttr:$selfAttr, OptionalAttr:$reductionOp, Variadic:$reductionOperands, Variadic:$copyOperands, @@ -121,12 +124,15 @@ let extraClassDeclaration = [{ static StringRef getAsyncKeyword() { return "async"; } + static StringRef getAsyncAttrName() { return "asyncAttr"; } static StringRef getWaitKeyword() { return "wait"; } + static StringRef getWaitAttrName() { return "waitAttr"; } static StringRef getNumGangsKeyword() { return "num_gangs"; } static StringRef getNumWorkersKeyword() { return "num_workers"; } static StringRef getVectorLengthKeyword() { return "vector_length"; } static StringRef getIfKeyword() { return "if"; } static StringRef getSelfKeyword() { return "self"; } + static StringRef getSelfAttrName() { return "selfAttr"; } static StringRef getReductionKeyword() { return "reduction"; } static StringRef getCopyKeyword() { return "copy"; } static StringRef getCopyinKeyword() { return "copyin"; } @@ -310,4 +316,3 @@ } #endif // OPENACC_OPS - diff --git a/mlir/test/Dialect/OpenACC/ops.mlir b/mlir/test/Dialect/OpenACC/ops.mlir --- a/mlir/test/Dialect/OpenACC/ops.mlir +++ b/mlir/test/Dialect/OpenACC/ops.mlir @@ -379,6 +379,12 @@ } attributes {defaultAttr = "none"} acc.parallel { } attributes {defaultAttr = "present"} + acc.parallel { + } attributes {asyncAttr} + acc.parallel { + } attributes {waitAttr} + acc.parallel { + } attributes {selfAttr} return } @@ -438,6 +444,12 @@ // CHECK-NEXT: } attributes {defaultAttr = "none"} // CHECK: acc.parallel { // CHECK-NEXT: } attributes {defaultAttr = "present"} +// CHECK: acc.parallel { +// CHECK-NEXT: } attributes {asyncAttr} +// CHECK: acc.parallel { +// CHECK-NEXT: } attributes {waitAttr} +// CHECK: acc.parallel { +// CHECK-NEXT: } attributes {selfAttr} // -----