From 16ffb283c5e49ccb00f450d6d7aaa5af75cce544 Mon Sep 17 00:00:00 2001 From: MaheshRavishankar Date: Thu, 19 Aug 2021 11:52:46 -0700 Subject: [PATCH] Revert "[mlir][Linalg] Allow all build methods of Structured ops to specify additional attributes." This reverts commit 95ddc8341ae2c27229ad3dcf1d55abebcec15d02. Differential Revision: https://reviews.llvm.org/D108396 --- .../mlir/Dialect/Linalg/IR/LinalgStructuredOps.td | 12 ++++-------- mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp | 19 +++++++------------ mlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc | 3 +-- .../mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml | 1 - .../tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp | 12 +++--------- .../mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp | 8 ++------ 6 files changed, 17 insertions(+), 38 deletions(-) diff --git a/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td b/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td index 1d4e6d5..33f4992 100644 --- a/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td +++ b/mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td @@ -620,22 +620,18 @@ def GenericOp : LinalgStructuredBase_Op<"generic", [ "ValueRange":$outputs, "ArrayRef":$indexingMaps, "ArrayRef":$iteratorTypes, "StringRef":$doc, "StringRef":$libraryCall, - CArg<"function_ref", "nullptr">, - CArg<"ArrayRef", "{}">:$attributes)>, + CArg<"function_ref", "nullptr">)>, OpBuilder<(ins "ValueRange":$inputs, "ValueRange":$outputBuffers, "ArrayRef":$indexingMaps, "ArrayRef":$iteratorTypes, "StringRef":$doc, "StringRef":$libraryCall, - CArg<"function_ref", "nullptr">, - CArg<"ArrayRef", "{}">:$attributes)>, + CArg<"function_ref", "nullptr">)>, OpBuilder<(ins "TypeRange":$resultTensorTypes, "ValueRange":$inputs, "ValueRange":$outputs, "ArrayRef":$indexingMaps, "ArrayRef":$iteratorTypes, - CArg<"function_ref", "nullptr">, - CArg<"ArrayRef", "{}">:$attributes)>, + CArg<"function_ref", "nullptr">)>, OpBuilder<(ins "ValueRange":$inputs, "ValueRange":$outputBuffers, "ArrayRef":$indexingMaps, "ArrayRef":$iteratorTypes, - CArg<"function_ref", "nullptr">, - CArg<"ArrayRef", "{}">:$attributes)> + CArg<"function_ref", "nullptr">)> ]; let extraClassDeclaration = structuredOpsBaseDecls # [{ diff --git a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp index f4750ca..6b65a9e 100644 --- a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp +++ b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp @@ -502,15 +502,13 @@ void GenericOp::build( OpBuilder &builder, OperationState &result, TypeRange resultTensorTypes, ValueRange inputs, ValueRange outputs, ArrayRef indexingMaps, ArrayRef iteratorTypes, StringRef doc, StringRef libraryCall, - function_ref bodyBuild, - ArrayRef attributes) { + function_ref bodyBuild) { build(builder, result, resultTensorTypes, inputs, outputs, builder.getAffineMapArrayAttr(indexingMaps), builder.getStrArrayAttr(iteratorTypes), doc.empty() ? StringAttr() : builder.getStringAttr(doc), libraryCall.empty() ? StringAttr() : builder.getStringAttr(libraryCall)); - result.addAttributes(attributes); if (!bodyBuild) return; @@ -529,33 +527,30 @@ void GenericOp::build( OpBuilder &builder, OperationState &result, ValueRange inputs, ValueRange outputs, ArrayRef indexingMaps, ArrayRef iteratorTypes, StringRef doc, StringRef libraryCall, - function_ref bodyBuild, - ArrayRef attributes) { + function_ref bodyBuild) { build(builder, result, TypeRange{}, inputs, outputs, indexingMaps, - iteratorTypes, doc, libraryCall, bodyBuild, attributes); + iteratorTypes, doc, libraryCall, bodyBuild); } void GenericOp::build( OpBuilder &builder, OperationState &result, ValueRange inputs, ValueRange outputs, ArrayRef indexingMaps, ArrayRef iteratorTypes, - function_ref bodyBuild, - ArrayRef attributes) { + function_ref bodyBuild) { build(builder, result, inputs, outputs, indexingMaps, iteratorTypes, /*doc=*/"", - /*libraryCall=*/"", bodyBuild, attributes); + /*libraryCall=*/"", bodyBuild); } void GenericOp::build( OpBuilder &builder, OperationState &result, TypeRange resultTensorTypes, ValueRange inputs, ValueRange outputs, ArrayRef indexingMaps, ArrayRef iteratorTypes, - function_ref bodyBuild, - ArrayRef attributes) { + function_ref bodyBuild) { build(builder, result, resultTensorTypes, inputs, outputs, indexingMaps, iteratorTypes, /*doc=*/"", - /*libraryCall=*/"", bodyBuild, attributes); + /*libraryCall=*/"", bodyBuild); } static void print(OpAsmPrinter &p, GenericOp op) { diff --git a/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc b/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc index 743bdbd..471961f 100644 --- a/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc +++ b/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc @@ -169,8 +169,7 @@ It has one output. // ODS-LABEL: def Test7Op // ODS: OpBuilder< // ODS: (ins "TypeRange":$resultTensorTypes, "ValueRange":$inputs, -// ODS: "ValueRange":$outputs, "Attribute":$attr_a, "Attribute":$attr_b, -// ODS: CArg<"ArrayRef", "{}">:$attributes) +// ODS: "ValueRange":$outputs, "Attribute":$attr_a, "Attribute":$attr_b) // ODS: $_state.addAttribute("attr_a", attr_a); // ODS: $_state.addAttribute("attr_b", attr_b); // diff --git a/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml b/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml index f8393a2..6613ab2 100644 --- a/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml +++ b/mlir/test/mlir-linalg-ods-gen/test-linalg-ods-yaml-gen.yaml @@ -75,7 +75,6 @@ structured_op: !LinalgStructuredOpConfig # ODS-NEXT: $_builder.getI32VectorAttr({ # ODS-NEXT: static_cast(inputs.size()), # ODS-NEXT: static_cast(outputs.size())})); -# ODS-NEXT: $_state.addAttributes(attributes); # ODS-NEXT: createAndFillStructuredOpRegion( # ODS-NEXT: $_builder, # ODS-NEXT: $_state, diff --git a/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp b/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp index 590f17f..1bdb5b8 100644 --- a/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp +++ b/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp @@ -1910,8 +1910,7 @@ void TCParser::printODS(llvm::raw_ostream &os, StringRef cppOpName, let skipDefaultBuilders = 1; let builders = [ OpBuilder< - (ins "ValueRange":$inputs, "ValueRange":$outputs, - CArg<"ArrayRef", "{{}">:$attributes), + (ins "ValueRange":$inputs, "ValueRange":$outputs), [{{ $_state.addOperands(inputs); $_state.addOperands(outputs); @@ -1920,7 +1919,6 @@ void TCParser::printODS(llvm::raw_ostream &os, StringRef cppOpName, $_builder.getI32VectorAttr({{ static_cast(inputs.size()), static_cast(outputs.size())})); - $_state.addAttributes(attributes); createAndFillStructuredOpRegion<{0}>( $_builder, $_state, @@ -1929,8 +1927,7 @@ void TCParser::printODS(llvm::raw_ostream &os, StringRef cppOpName, }]>, OpBuilder< (ins "TypeRange":$resultTensorTypes, "ValueRange":$inputs, - "ValueRange":$outputs, - CArg<"ArrayRef", "{{}">:$attributes), + "ValueRange":$outputs), [{{ $_state.addOperands(inputs); $_state.addOperands(outputs); @@ -1940,7 +1937,6 @@ void TCParser::printODS(llvm::raw_ostream &os, StringRef cppOpName, $_builder.getI32VectorAttr({{ static_cast(inputs.size()), static_cast(outputs.size())})); - $_state.addAttributes(attributes); createAndFillStructuredOpRegion<{0}>( $_builder, $_state, @@ -2024,8 +2020,7 @@ void TCParser::printODS(llvm::raw_ostream &os, StringRef cppOpName, const char *builderFmt = R"FMT( , OpBuilder< (ins "TypeRange":$resultTensorTypes, "ValueRange":$inputs, - "ValueRange":$outputs, {1}, - CArg<"ArrayRef", "{{}">:$attributes), + "ValueRange":$outputs, {1}), [{{ $_state.addOperands(inputs); $_state.addOperands(outputs); @@ -2035,7 +2030,6 @@ void TCParser::printODS(llvm::raw_ostream &os, StringRef cppOpName, $_builder.getI32VectorAttr({{ static_cast(inputs.size()), static_cast(outputs.size())})); - $_state.addAttributes(attributes); createAndFillStructuredOpRegion<{0}>( $_builder, $_state, diff --git a/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp b/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp index 98e90b6..a0eb1de 100644 --- a/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp +++ b/mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp @@ -457,8 +457,7 @@ def {0} : LinalgStructuredBase_Op<"{1}", !listconcat([ let skipDefaultBuilders = 1; let builders = [ OpBuilder< - (ins "ValueRange":$inputs, "ValueRange":$outputs, - CArg<"ArrayRef", "{{}">:$attributes), + (ins "ValueRange":$inputs, "ValueRange":$outputs), [{{ $_state.addOperands(inputs); $_state.addOperands(outputs); @@ -472,7 +471,6 @@ def {0} : LinalgStructuredBase_Op<"{1}", !listconcat([ $_builder.getI32VectorAttr({{ static_cast(inputs.size()), static_cast(outputs.size())})); - $_state.addAttributes(attributes); createAndFillStructuredOpRegion<{0}>( $_builder, $_state, @@ -541,8 +539,7 @@ def {0} : LinalgStructuredBase_Op<"{1}", !listconcat([ static const char structuredOpBuilderFormat[] = R"FMT( , OpBuilder< (ins "TypeRange":$resultTensorTypes, "ValueRange":$inputs, - "ValueRange":$outputs, {1}, - CArg<"ArrayRef", "{{}">:$attributes), + "ValueRange":$outputs, {1}), [{{ $_state.addOperands(inputs); $_state.addOperands(outputs); @@ -558,7 +555,6 @@ static const char structuredOpBuilderFormat[] = R"FMT( TypeRange(inputs), TypeRange(outputs)); {2} - $_state.addAttributes(attributes); }]> )FMT"; -- 2.7.4