[Mlir-commits] [mlir] bbe4441 - [mlir][Linalg] NFC - Drop LinalgLoweringPattern
Nicolas Vasilache
llvmlistbot at llvm.org
Wed Oct 12 07:31:03 PDT 2022
Author: Nicolas Vasilache
Date: 2022-10-12T07:27:35-07:00
New Revision: bbe4441d3395e55d59eee9bef33539ac100010c2
URL: https://github.com/llvm/llvm-project/commit/bbe4441d3395e55d59eee9bef33539ac100010c2
DIFF: https://github.com/llvm/llvm-project/commit/bbe4441d3395e55d59eee9bef33539ac100010c2.diff
LOG: [mlir][Linalg] NFC - Drop LinalgLoweringPattern
Linalg ops are generally lowered to loops using a pass and the individual application
of patterns has no concrete uses.
If/when necessary, this can later be reintroduced via a proper transform dialect op.
Differential Revision: https://reviews.llvm.org/D135766
Added:
Modified:
mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
mlir/test/Dialect/Linalg/transform-patterns.mlir
mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h b/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
index e77d4e87ce1a3..4fd9e3fe0cf2d 100644
--- a/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
+++ b/mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
@@ -842,66 +842,6 @@ struct LinalgEnablingOptions {
//===----------------------------------------------------------------------===//
// Transformations exposed as rewrite patterns.
//===----------------------------------------------------------------------===//
-///
-/// Linalg lowering patterns.
-///
-/// Apply the `linalgLowerOpToLoops` transformation as a pattern.
-/// `filter` controls LinalgTransformMarker matching and update when specified.
-/// See `linalgLowerOpToLoops` for more details.
-enum class LinalgLoweringType {
- LibraryCall = 0,
- Loops = 1,
- AffineLoops = 2,
- ParallelLoops = 3
-};
-
-template <typename OpTy>
-struct LinalgLoweringPattern : public RewritePattern {
- LinalgLoweringPattern(
- MLIRContext *context, LinalgLoweringType loweringType,
- LinalgTransformationFilter f = LinalgTransformationFilter(),
- PatternBenefit benefit = 1)
- : RewritePattern(OpTy::getOperationName(), benefit, context),
- filter(std::move(f)), loweringType(loweringType) {}
-
- // TODO: Move implementation to .cpp once named ops are auto-generated.
- LogicalResult matchAndRewrite(Operation *op,
- PatternRewriter &rewriter) const override {
- LinalgOp linalgOp = dyn_cast<LinalgOp>(op);
- if (!linalgOp)
- return failure();
- if (failed(filter.checkAndNotify(rewriter, linalgOp)))
- return failure();
-
- switch (loweringType) {
- case LinalgLoweringType::LibraryCall:
- // TODO: Move lowering to library calls here.
- return failure();
- case LinalgLoweringType::Loops:
- if (failed(linalgOpToLoops(rewriter, op)))
- return failure();
- break;
- case LinalgLoweringType::AffineLoops:
- if (failed(linalgOpToAffineLoops(rewriter, op)))
- return failure();
- break;
- case LinalgLoweringType::ParallelLoops:
- if (failed(linalgOpToParallelLoops(rewriter, op)))
- return failure();
- break;
- }
-
- rewriter.eraseOp(op);
- return success();
- }
-
-private:
- /// LinalgTransformMarker handles special attribute manipulations.
- LinalgTransformationFilter filter;
- /// Controls whether the pattern lowers to library calls, scf.for, affine.for
- /// or scf.parallel.
- LinalgLoweringType loweringType;
-};
/// Linalg generalization patterns
diff --git a/mlir/test/Dialect/Linalg/transform-patterns.mlir b/mlir/test/Dialect/Linalg/transform-patterns.mlir
index b66d8f604127d..06c52f50e0fa2 100644
--- a/mlir/test/Dialect/Linalg/transform-patterns.mlir
+++ b/mlir/test/Dialect/Linalg/transform-patterns.mlir
@@ -19,16 +19,9 @@ transform.sequence failures(propagate) {
// CHECK-LABEL: func @dot
// CHECK-DAG: %[[c0:.*]] = arith.constant 0 : index
-// CHECK-DAG: %[[c1:.*]] = arith.constant 1 : index
// CHECK-DAG: %[[c8000:.*]] = arith.constant 8000 : index
// CHECK: scf.for {{.*}} = %[[c0]] to {{.*}} step %[[c8000]] {
-// CHECK: scf.for {{.*}} = %[[c0]] to {{.*}} step %[[c1]] {
-// CHECK: load
-// CHECK: load
-// CHECK: load
-// CHECK: arith.mulf
-// CHECK: arith.addf
-// CHECK: store
+// CHECK: linalg.dot
// -----
diff --git a/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp b/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
index ad27637c49ea3..41dce75b711a5 100644
--- a/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
+++ b/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
@@ -124,13 +124,6 @@ static void applyPatterns(func::FuncOp funcOp) {
MLIRContext *ctx = funcOp.getContext();
RewritePatternSet patterns(ctx);
- //===--------------------------------------------------------------------===//
- // Linalg to loops patterns.
- //===--------------------------------------------------------------------===//
- patterns.add<LinalgLoweringPattern<DotOp>>(
- ctx,
- /*loweringType=*/LinalgLoweringType::Loops);
-
//===--------------------------------------------------------------------===//
// Linalg distribution patterns.
//===--------------------------------------------------------------------===//
More information about the Mlir-commits
mailing list