Skip to content

Commit 6674e57

Browse files
committed
[mlir][openacc] Fix acc.declare attribute on operation
The attribute on operations in ops.mlir were not DeclareAttr but DataClauseAttr with the acc.declare attribute name. Update the test and the verifier to work correctly with the expected DeclareAttr. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D156262
1 parent b6847ed commit 6674e57

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,8 +1015,9 @@ static LogicalResult checkDeclareOperands(Op &op,
10151015
if (!declareAttribute)
10161016
return op.emitError(
10171017
"expect declare attribute on variable in declare operation");
1018-
if (llvm::cast<DataClauseAttr>(declareAttribute).getValue() !=
1019-
dataClauseOptional.value())
1018+
if (mlir::cast<mlir::acc::DeclareAttr>(declareAttribute)
1019+
.getDataClause()
1020+
.getValue() != dataClauseOptional.value())
10201021
return op.emitError(
10211022
"expect matching declare attribute on variable in declare operation");
10221023
}

mlir/test/Dialect/OpenACC/ops.mlir

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1605,32 +1605,32 @@ func.func @testdeclareop(%a: memref<f32>, %b: memref<f32>, %c: memref<f32>) -> (
16051605

16061606
// -----
16071607

1608-
llvm.mlir.global external @globalvar() { acc.declare = #acc<data_clause acc_create> } : i32 {
1608+
llvm.mlir.global external @globalvar() { acc.declare = #acc.declare<dataClause = acc_create> } : i32 {
16091609
%0 = llvm.mlir.constant(0 : i32) : i32
16101610
llvm.return %0 : i32
16111611
}
16121612

16131613
acc.global_ctor @acc_constructor {
1614-
%0 = llvm.mlir.addressof @globalvar { acc.declare = #acc<data_clause acc_create> } : !llvm.ptr<i32>
1614+
%0 = llvm.mlir.addressof @globalvar { acc.declare = #acc.declare<dataClause = acc_create> } : !llvm.ptr<i32>
16151615
%1 = acc.create varPtr(%0 : !llvm.ptr<i32>) -> !llvm.ptr<i32>
16161616
acc.declare_enter dataOperands(%1 : !llvm.ptr<i32>)
16171617
acc.terminator
16181618
}
16191619

16201620
acc.global_dtor @acc_destructor {
1621-
%0 = llvm.mlir.addressof @globalvar { acc.declare = #acc<data_clause acc_create> } : !llvm.ptr<i32>
1622-
%1 = acc.getdeviceptr varPtr(%0 : !llvm.ptr<i32>) -> !llvm.ptr<i32> { dataClause = #acc<data_clause acc_create>}
1621+
%0 = llvm.mlir.addressof @globalvar { acc.declare = #acc.declare<dataClause = acc_create> } : !llvm.ptr<i32>
1622+
%1 = acc.getdeviceptr varPtr(%0 : !llvm.ptr<i32>) -> !llvm.ptr<i32> {dataClause = #acc<data_clause acc_create>}
16231623
acc.declare_exit dataOperands(%1 : !llvm.ptr<i32>)
16241624
acc.delete accPtr(%1 : !llvm.ptr<i32>)
16251625
acc.terminator
16261626
}
16271627

16281628
// CHECK-LABEL: acc.global_ctor @acc_constructor
1629-
// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc<data_clause acc_create>} : !llvm.ptr<i32>
1629+
// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc.declare<dataClause = acc_create>} : !llvm.ptr<i32>
16301630
// CHECK-NEXT: %[[CREATE:.*]] = acc.create varPtr(%[[ADDR]] : !llvm.ptr<i32>) -> !llvm.ptr<i32>
16311631
// CHECK-NEXT: acc.declare_enter dataOperands(%[[CREATE]] : !llvm.ptr<i32>)
16321632
// CHECK: acc.global_dtor @acc_destructor
1633-
// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc<data_clause acc_create>} : !llvm.ptr<i32>
1633+
// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc.declare<dataClause = acc_create>} : !llvm.ptr<i32>
16341634
// CHECK-NEXT: %[[DELETE:.*]] = acc.getdeviceptr varPtr(%[[ADDR]] : !llvm.ptr<i32>) -> !llvm.ptr<i32> {dataClause = #acc<data_clause acc_create>}
16351635
// CHECK-NEXT: acc.declare_exit dataOperands(%[[DELETE]] : !llvm.ptr<i32>)
16361636
// CHECK-NEXT: acc.delete accPtr(%[[DELETE]] : !llvm.ptr<i32>)

0 commit comments

Comments
 (0)