[Mlir-commits] [mlir] 3773d04 - [mlir][memref] Switch ViewOp to the declarative assembly format
Benjamin Kramer
llvmlistbot at llvm.org
Thu Feb 17 12:34:58 PST 2022
Author: Benjamin Kramer
Date: 2022-02-17T21:34:15+01:00
New Revision: 3773d04a1316a79d11ff5c6ed261e57e87816428
URL: https://github.com/llvm/llvm-project/commit/3773d04a1316a79d11ff5c6ed261e57e87816428
DIFF: https://github.com/llvm/llvm-project/commit/3773d04a1316a79d11ff5c6ed261e57e87816428.diff
LOG: [mlir][memref] Switch ViewOp to the declarative assembly format
Added:
Modified:
mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
mlir/test/Dialect/MemRef/invalid.mlir
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td b/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
index 9102da3db7877..1ee0b866a00a2 100644
--- a/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
+++ b/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
@@ -1771,8 +1771,12 @@ def MemRef_ViewOp : MemRef_Op<"view", [
}
}];
+ let assemblyFormat = [{
+ $source `[` $byte_shift `]` `` `[` $sizes `]` attr-dict
+ `:` type($source) `to` type(results)
+ }];
+
let hasCanonicalizer = 1;
- let hasCustomAssemblyFormat = 1;
let hasVerifier = 1;
}
diff --git a/mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp b/mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
index 541da53cb2a49..4af1f5a25ba1d 100644
--- a/mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
+++ b/mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
@@ -2278,39 +2278,6 @@ OpFoldResult TransposeOp::fold(ArrayRef<Attribute>) {
// ViewOp
//===----------------------------------------------------------------------===//
-ParseResult ViewOp::parse(OpAsmParser &parser, OperationState &result) {
- OpAsmParser::OperandType srcInfo;
- SmallVector<OpAsmParser::OperandType, 1> offsetInfo;
- SmallVector<OpAsmParser::OperandType, 4> sizesInfo;
- auto indexType = parser.getBuilder().getIndexType();
- Type srcType, dstType;
- SMLoc offsetLoc;
- if (parser.parseOperand(srcInfo) || parser.getCurrentLocation(&offsetLoc) ||
- parser.parseOperandList(offsetInfo, OpAsmParser::Delimiter::Square))
- return failure();
-
- if (offsetInfo.size() != 1)
- return parser.emitError(offsetLoc) << "expects 1 offset operand";
-
- return failure(
- parser.parseOperandList(sizesInfo, OpAsmParser::Delimiter::Square) ||
- parser.parseOptionalAttrDict(result.attributes) ||
- parser.parseColonType(srcType) ||
- parser.resolveOperand(srcInfo, srcType, result.operands) ||
- parser.resolveOperands(offsetInfo, indexType, result.operands) ||
- parser.resolveOperands(sizesInfo, indexType, result.operands) ||
- parser.parseKeywordType("to", dstType) ||
- parser.addTypeToList(dstType, result.types));
-}
-
-void ViewOp::print(OpAsmPrinter &p) {
- p << ' ' << getOperand(0) << '[';
- p.printOperand(byte_shift());
- p << "][" << sizes() << ']';
- p.printOptionalAttrDict((*this)->getAttrs());
- p << " : " << getOperand(0).getType() << " to " << getType();
-}
-
LogicalResult ViewOp::verify() {
auto baseType = getOperand(0).getType().cast<MemRefType>();
auto viewType = getType();
diff --git a/mlir/test/Dialect/MemRef/invalid.mlir b/mlir/test/Dialect/MemRef/invalid.mlir
index 54e405b3f2ad1..d65986f90441e 100644
--- a/mlir/test/Dialect/MemRef/invalid.mlir
+++ b/mlir/test/Dialect/MemRef/invalid.mlir
@@ -516,7 +516,7 @@ func @collapse_shape_illegal_mixed_memref_2(%arg0 : memref<?x4x5xf32>)
func @invalid_view(%arg0 : index, %arg1 : index, %arg2 : index) {
%0 = memref.alloc() : memref<2048xi8>
- // expected-error at +1 {{expects 1 offset operand}}
+ // expected-error at +1 {{expected SSA operand}}
%1 = memref.view %0[][%arg0, %arg1]
: memref<2048xi8> to memref<?x?xf32>
return
More information about the Mlir-commits
mailing list