[Mlir-commits] [mlir] 945d20f - [MLIR][Shape] Lower `size_to_index` and `index_to_size` with declarative rules
Frederik Gossen
llvmlistbot at llvm.org
Thu Jun 18 01:02:12 PDT 2020
Author: Frederik Gossen
Date: 2020-06-18T08:01:38Z
New Revision: 945d20f7ab28bbf836bc7911d59f37eb9e9a6c87
URL: https://github.com/llvm/llvm-project/commit/945d20f7ab28bbf836bc7911d59f37eb9e9a6c87
DIFF: https://github.com/llvm/llvm-project/commit/945d20f7ab28bbf836bc7911d59f37eb9e9a6c87.diff
LOG: [MLIR][Shape] Lower `size_to_index` and `index_to_size` with declarative rules
Replace implemented rewrite patterns with equivalent declarative rules.
Differential Revision: https://reviews.llvm.org/D82023
Added:
Modified:
mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
mlir/lib/Conversion/ShapeToStandard/ShapeToStandardPatterns.td
Removed:
################################################################################
diff --git a/mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp b/mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
index 6cce898112bf..e7741145cfe5 100644
--- a/mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
+++ b/mlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
@@ -38,32 +38,6 @@ class BinaryOpConversion : public OpConversionPattern<SrcOpTy> {
}
};
-class IndexToSizeOpConversion : public OpConversionPattern<IndexToSizeOp> {
-public:
- using OpConversionPattern<IndexToSizeOp>::OpConversionPattern;
-
- LogicalResult
- matchAndRewrite(IndexToSizeOp op, ArrayRef<Value> operands,
- ConversionPatternRewriter &rewriter) const override {
- IndexToSizeOp::Adaptor transformed(operands);
- rewriter.replaceOp(op.getOperation(), transformed.arg());
- return success();
- }
-};
-
-class SizeToIndexOpConversion : public OpConversionPattern<SizeToIndexOp> {
-public:
- using OpConversionPattern<SizeToIndexOp>::OpConversionPattern;
-
- LogicalResult
- matchAndRewrite(SizeToIndexOp op, ArrayRef<Value> operands,
- ConversionPatternRewriter &rewriter) const override {
- SizeToIndexOp::Adaptor transformed(operands);
- rewriter.replaceOp(op.getOperation(), transformed.arg());
- return success();
- }
-};
-
class ConstSizeOpConverter : public OpConversionPattern<ConstSizeOp> {
public:
using OpConversionPattern<ConstSizeOp>::OpConversionPattern;
@@ -132,9 +106,7 @@ void mlir::populateShapeToStandardConversionPatterns(
patterns.insert<
BinaryOpConversion<AddOp, AddIOp>,
BinaryOpConversion<MulOp, MulIOp>,
- ConstSizeOpConverter,
- IndexToSizeOpConversion,
- SizeToIndexOpConversion>(ctx);
+ ConstSizeOpConverter>(ctx);
// clang-format on
}
diff --git a/mlir/lib/Conversion/ShapeToStandard/ShapeToStandardPatterns.td b/mlir/lib/Conversion/ShapeToStandard/ShapeToStandardPatterns.td
index 3ad54215d8ed..a1335487f5ab 100644
--- a/mlir/lib/Conversion/ShapeToStandard/ShapeToStandardPatterns.td
+++ b/mlir/lib/Conversion/ShapeToStandard/ShapeToStandardPatterns.td
@@ -10,3 +10,12 @@ def ToExtentTensorOpConversion : Pat<
(Shape_ToExtentTensorOp $input),
(replaceWithValue $input)>;
+// Convert `index_to_size` and `size_to_index` to no-ops as sizes will be
+// represented as indices.
+def IndexToSizeOpConversion : Pat<
+ (Shape_IndexToSizeOp $arg),
+ (replaceWithValue $arg)>;
+def SizeToIndexOpConversion : Pat<
+ (Shape_SizeToIndexOp $arg),
+ (replaceWithValue $arg)>;
+
More information about the Mlir-commits
mailing list