[Mlir-commits] [mlir] 412b605 - [mlir][shape] Mark some operations as commutative
Stephan Herhut
llvmlistbot at llvm.org
Wed Jul 15 09:43:25 PDT 2020
Author: Stephan Herhut
Date: 2020-07-15T18:32:42+02:00
New Revision: 412b60531edd8caeccea9c3756d55c7f32337857
URL: https://github.com/llvm/llvm-project/commit/412b60531edd8caeccea9c3756d55c7f32337857
DIFF: https://github.com/llvm/llvm-project/commit/412b60531edd8caeccea9c3756d55c7f32337857.diff
LOG: [mlir][shape] Mark some operations as commutative
Summary:
This makes sure that their constant arguments are sorted to the back
and hence eases the specification of rewrite patterns.
Differential Revision: https://reviews.llvm.org/D83856
Added:
Modified:
mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td b/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
index 7b54616ad703..38bac19d0fa8 100644
--- a/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
+++ b/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
@@ -53,7 +53,7 @@ def Shape_WitnessType : DialectType<ShapeDialect,
class Shape_Op<string mnemonic, list<OpTrait> traits = []> :
Op<ShapeDialect, mnemonic, traits>;
-def Shape_AddOp : Shape_Op<"add", [SameOperandsAndResultType]> {
+def Shape_AddOp : Shape_Op<"add", [Commutative, SameOperandsAndResultType]> {
let summary = "Addition of sizes";
let description = [{
Adds two valid sizes as follows:
@@ -67,7 +67,7 @@ def Shape_AddOp : Shape_Op<"add", [SameOperandsAndResultType]> {
let assemblyFormat = "$lhs `,` $rhs attr-dict";
}
-def Shape_BroadcastOp : Shape_Op<"broadcast", []> {
+def Shape_BroadcastOp : Shape_Op<"broadcast", [Commutative]> {
let summary = "Returns the broadcasted output shape of two inputs";
let description = [{
Computes the broadcasted output shape following:
@@ -268,7 +268,7 @@ def Shape_IndexToSizeOp : Shape_Op<"index_to_size", [NoSideEffect]> {
let hasCanonicalizer = 1;
}
-def Shape_JoinOp : Shape_Op<"join", []> {
+def Shape_JoinOp : Shape_Op<"join", [Commutative]> {
let summary = "Returns the least general shape.size of its operands";
let description = [{
An operation that computes the least general shape of input operands.
@@ -301,7 +301,7 @@ def Shape_JoinOp : Shape_Op<"join", []> {
let results = (outs Shape_ShapeOrSizeType:$result);
}
-def Shape_MulOp : Shape_Op<"mul", [SameOperandsAndResultType]> {
+def Shape_MulOp : Shape_Op<"mul", [Commutative, SameOperandsAndResultType]> {
let summary = "Multiplication of sizes";
let description = [{
Multiplies two valid sizes as follows:
More information about the Mlir-commits
mailing list