diff --git a/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp b/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp --- a/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp +++ b/mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp @@ -1015,8 +1015,9 @@ if (!declareAttribute) return op.emitError( "expect declare attribute on variable in declare operation"); - if (llvm::cast(declareAttribute).getValue() != - dataClauseOptional.value()) + if (mlir::cast(declareAttribute) + .getDataClause() + .getValue() != dataClauseOptional.value()) return op.emitError( "expect matching declare attribute on variable in declare operation"); } 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 @@ -1605,32 +1605,32 @@ // ----- -llvm.mlir.global external @globalvar() { acc.declare = #acc } : i32 { +llvm.mlir.global external @globalvar() { acc.declare = #acc.declare } : i32 { %0 = llvm.mlir.constant(0 : i32) : i32 llvm.return %0 : i32 } acc.global_ctor @acc_constructor { - %0 = llvm.mlir.addressof @globalvar { acc.declare = #acc } : !llvm.ptr + %0 = llvm.mlir.addressof @globalvar { acc.declare = #acc.declare } : !llvm.ptr %1 = acc.create varPtr(%0 : !llvm.ptr) -> !llvm.ptr acc.declare_enter dataOperands(%1 : !llvm.ptr) acc.terminator } acc.global_dtor @acc_destructor { - %0 = llvm.mlir.addressof @globalvar { acc.declare = #acc } : !llvm.ptr - %1 = acc.getdeviceptr varPtr(%0 : !llvm.ptr) -> !llvm.ptr { dataClause = #acc} + %0 = llvm.mlir.addressof @globalvar { acc.declare = #acc.declare } : !llvm.ptr + %1 = acc.getdeviceptr varPtr(%0 : !llvm.ptr) -> !llvm.ptr {dataClause = #acc} acc.declare_exit dataOperands(%1 : !llvm.ptr) acc.delete accPtr(%1 : !llvm.ptr) acc.terminator } // CHECK-LABEL: acc.global_ctor @acc_constructor -// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc} : !llvm.ptr +// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc.declare} : !llvm.ptr // CHECK-NEXT: %[[CREATE:.*]] = acc.create varPtr(%[[ADDR]] : !llvm.ptr) -> !llvm.ptr // CHECK-NEXT: acc.declare_enter dataOperands(%[[CREATE]] : !llvm.ptr) // CHECK: acc.global_dtor @acc_destructor -// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc} : !llvm.ptr +// CHECK: %[[ADDR:.*]] = llvm.mlir.addressof @globalvar {acc.declare = #acc.declare} : !llvm.ptr // CHECK-NEXT: %[[DELETE:.*]] = acc.getdeviceptr varPtr(%[[ADDR]] : !llvm.ptr) -> !llvm.ptr {dataClause = #acc} // CHECK-NEXT: acc.declare_exit dataOperands(%[[DELETE]] : !llvm.ptr) // CHECK-NEXT: acc.delete accPtr(%[[DELETE]] : !llvm.ptr)