[Mlir-commits] [mlir] 452e2fc - Revert of Revert of [mlir][shape] Tidy up shape.shape_of

Sean Silva llvmlistbot at llvm.org
Tue May 12 15:51:33 PDT 2020


Author: Sean Silva
Date: 2020-05-12T15:51:24-07:00
New Revision: 452e2fc409df4acd790fcb53872db5a1b8c0130a

URL: https://github.com/llvm/llvm-project/commit/452e2fc409df4acd790fcb53872db5a1b8c0130a
DIFF: https://github.com/llvm/llvm-project/commit/452e2fc409df4acd790fcb53872db5a1b8c0130a.diff

LOG: Revert of Revert of [mlir][shape] Tidy up shape.shape_of

Summary:

- Mark it NoSideEffect
- Add custom parser/printer

This reverts the temporary revert in
https://reviews.llvm.org/rG84a9c725742d26df04808a3c7349dbd98684c6cb
That was a false alarm. A downstream test actually needed to be updated.

Added: 
    

Modified: 
    mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
    mlir/test/Dialect/Shape/ops.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td b/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
index 2ce06b358e08..4f588f0583a8 100644
--- a/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
+++ b/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
@@ -226,12 +226,14 @@ def Shape_ReduceOp : Shape_Op<"reduce", []> {
 }
 
 def Shape_ShapeOfOp : Shape_Op<"shape_of",
-    [DeclareOpInterfaceMethods<InferTypeOpInterface>]> {
+    [NoSideEffect, DeclareOpInterfaceMethods<InferTypeOpInterface>]> {
   let summary = "Returns shape of a value or shaped type operand";
 
   let arguments = (ins AnyTypeOf<[AnyShaped, Shape_ValueShapeType]>:$arg);
   let results = (outs Shape_ShapeType:$result);
 
+  let assemblyFormat = "attr-dict $arg `:` type($arg)";
+
   let hasFolder = 1;
 }
 

diff  --git a/mlir/test/Dialect/Shape/ops.mlir b/mlir/test/Dialect/Shape/ops.mlir
index 5ca3b0f49120..81c9afceef5f 100644
--- a/mlir/test/Dialect/Shape/ops.mlir
+++ b/mlir/test/Dialect/Shape/ops.mlir
@@ -62,3 +62,8 @@ func @test_parse_const_shape() {
   %1 = shape.const_shape [1, 2, 3]
   return
 }
+
+func @test_shape_of(%arg0: tensor<?xf32>) -> !shape.shape {
+  %0 = shape.shape_of %arg0 : tensor<?xf32>
+  return %0 : !shape.shape
+}


        


More information about the Mlir-commits mailing list