diff --git a/mlir/include/mlir/Dialect/Linalg/Passes.h b/mlir/include/mlir/Dialect/Linalg/Passes.h --- a/mlir/include/mlir/Dialect/Linalg/Passes.h +++ b/mlir/include/mlir/Dialect/Linalg/Passes.h @@ -97,11 +97,6 @@ const linalg::LinalgTransformationFilter &filter = linalg::LinalgTransformationFilter()); -/// Create a LinalgStrategyGeneralizePass. -std::unique_ptr> createLinalgStrategyGeneralizePass( - StringRef opName = "", const linalg::LinalgTransformationFilter &filter = - linalg::LinalgTransformationFilter()); - /// Create a LinalgStrategyDecomposePass. // TODO: if/when we need finer control add an `opName` parameter. std::unique_ptr> createLinalgStrategyDecomposePass( diff --git a/mlir/include/mlir/Dialect/Linalg/Passes.td b/mlir/include/mlir/Dialect/Linalg/Passes.td --- a/mlir/include/mlir/Dialect/Linalg/Passes.td +++ b/mlir/include/mlir/Dialect/Linalg/Passes.td @@ -210,19 +210,6 @@ ]; } -def LinalgStrategyGeneralizePass - : Pass<"linalg-strategy-generalize-pass", "func::FuncOp"> { - let summary = "Configurable pass to apply pattern-based generalization."; - let constructor = "mlir::createLinalgStrategyGeneralizePass()"; - let dependentDialects = ["linalg::LinalgDialect"]; - let options = [ - Option<"anchorFuncName", "anchor-func", "std::string", /*default=*/"", - "Which func op is the anchor to latch on.">, - Option<"anchorOpName", "anchor-op", "std::string", /*default=*/"", - "Which linalg op within the func is the anchor to latch on.">, - ]; -} - // TODO: if/when we need finer control add an anchorOp option. def LinalgStrategyDecomposePass : Pass<"linalg-strategy-decompose-pass", "func::FuncOp"> { diff --git a/mlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h b/mlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h --- a/mlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h +++ b/mlir/include/mlir/Dialect/Linalg/Transforms/CodegenStrategy.h @@ -81,21 +81,6 @@ linalg::LinalgPaddingOptions options; }; -/// Represent one application of createLinalgStrategyGeneralizePass. -struct Generalize : public Transformation { - explicit Generalize(StringRef name, - LinalgTransformationFilter::FilterFunction f = nullptr) - : Transformation(std::move(f)), opName(name) {} - - void addToPassPipeline(OpPassManager &pm, - LinalgTransformationFilter m) const override { - pm.addPass(createLinalgStrategyGeneralizePass(opName, m)); - } - -private: - std::string opName; -}; - /// Represent one application of createLinalgStrategyDecomposePass. struct Decompose : public Transformation { explicit Decompose(LinalgTransformationFilter::FilterFunction f = nullptr) @@ -218,21 +203,7 @@ padIf(bool b, StringRef opName, linalg::LinalgPaddingOptions options, LinalgTransformationFilter::FilterFunction f = nullptr) { return b ? pad(opName, std::move(options), std::move(f)) : *this; - } - /// Append a pattern to generalize named operations. - CodegenStrategy & - generalize(StringRef opName, - const LinalgTransformationFilter::FilterFunction &f = nullptr) { - transformationSequence.emplace_back( - std::make_unique(opName, f)); - return *this; - } - /// Conditionally append a pattern to generalize named operations. - CodegenStrategy & - generalizeIf(bool b, StringRef opName, - LinalgTransformationFilter::FilterFunction f = nullptr) { - return b ? generalize(opName, std::move(f)) : *this; - } + } /// Append patterns to decompose convolutions. CodegenStrategy & decompose(const LinalgTransformationFilter::FilterFunction &f = nullptr) { diff --git a/mlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp b/mlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp --- a/mlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp @@ -142,38 +142,6 @@ LinalgTransformationFilter filter; }; -/// Configurable pass to apply pattern-based linalg generalization. -struct LinalgStrategyGeneralizePass - : public LinalgStrategyGeneralizePassBase { - - LinalgStrategyGeneralizePass() = default; - - LinalgStrategyGeneralizePass(StringRef opName, - LinalgTransformationFilter filter) - : filter(std::move(filter)) { - this->anchorOpName.setValue(opName.str()); - } - - void runOnOperation() override { - auto funcOp = getOperation(); - if (!anchorFuncName.empty() && funcOp.getName() != anchorFuncName) - return; - - RewritePatternSet generalizationPattern(funcOp.getContext()); - if (!anchorOpName.empty()) { - generalizationPattern.add( - anchorOpName, funcOp.getContext(), filter); - } else { - generalizationPattern.add( - funcOp.getContext(), filter); - } - if (failed(applyPatternsAndFoldGreedily(funcOp, - std::move(generalizationPattern)))) - signalPassFailure(); - } - - LinalgTransformationFilter filter; -}; /// Configurable pass to apply lowering of coarser-grained named linalg ops into /// finer-grained named versions. @@ -445,13 +413,6 @@ return std::make_unique(opName, opt, filter); } -/// Create a LinalgStrategyGeneralizePass. -std::unique_ptr> -mlir::createLinalgStrategyGeneralizePass( - StringRef opName, const LinalgTransformationFilter &filter) { - return std::make_unique(opName, filter); -} - /// Create a LinalgStrategyDecomposePass. // TODO: if/when we need finer control add an `opName` parameter. std::unique_ptr>