[mlir][Vector] Add InferTypeOpInterface to vector dialect and remove the now redundant builders

This commit is contained in:
Benjamin Kramer 2022-02-18 01:15:14 +01:00
parent c6a3225bb0
commit a83e08b450
3 changed files with 5 additions and 16 deletions

View File

@ -13,6 +13,7 @@
#ifndef VECTOR_OPS
#define VECTOR_OPS
include "mlir/Interfaces/InferTypeOpInterface.td"
include "mlir/Interfaces/SideEffectInterfaces.td"
include "mlir/Interfaces/VectorInterfaces.td"
include "mlir/Interfaces/ViewLikeInterface.td"
@ -675,10 +676,6 @@ def Vector_FMAOp :
```
}];
let assemblyFormat = "$lhs `,` $rhs `,` $acc attr-dict `:` type($lhs)";
let builders = [
OpBuilder<(ins "Value":$lhs, "Value":$rhs, "Value":$acc),
[{build($_builder, $_state, lhs.getType(), lhs, rhs, acc);}]>
];
let extraClassDeclaration = [{
VectorType getVectorType() { return lhs().getType().cast<VectorType>(); }
}];
@ -721,8 +718,6 @@ def Vector_InsertElementOp :
let builders = [
// 0-D builder.
OpBuilder<(ins "Value":$source, "Value":$dest)>,
// 1-D + position builder.
OpBuilder<(ins "Value":$source, "Value":$dest, "Value":$position)>
];
let extraClassDeclaration = [{
Type getSourceType() { return source().getType(); }

View File

@ -1837,14 +1837,7 @@ OpFoldResult vector::ShuffleOp::fold(ArrayRef<Attribute> operands) {
void InsertElementOp::build(OpBuilder &builder, OperationState &result,
Value source, Value dest) {
result.addOperands({source, dest});
result.addTypes(dest.getType());
}
void InsertElementOp::build(OpBuilder &builder, OperationState &result,
Value source, Value dest, Value position) {
result.addOperands({source, dest, position});
result.addTypes(dest.getType());
build(builder, result, source, dest, {});
}
LogicalResult InsertElementOp::verify() {

View File

@ -2174,7 +2174,7 @@ cc_library(
":StandardOps",
":Support",
":TransformUtils",
":Transforms",
":Transforms",
":TransformsPassIncGen",
"//llvm:Core",
"//llvm:Support",
@ -3616,8 +3616,8 @@ cc_library(
":ArithmeticToLLVM",
":Async",
":AsyncToLLVM",
":ConversionPassIncGen",
":ControlFlowToLLVM",
":ConversionPassIncGen",
":GPUDialect",
":GPUTransforms",
":IR",
@ -7143,6 +7143,7 @@ td_library(
srcs = ["include/mlir/Dialect/Vector/IR/VectorOps.td"],
includes = ["include"],
deps = [
":InferTypeOpInterfaceTdFiles",
":OpBaseTdFiles",
":SideEffectInterfacesTdFiles",
":VectorInterfacesTdFiles",