OSDN Git Service

[mlir] Mark witness related Shape dialect ops as NoSideEffect.
authorTres Popp <tpopp@google.com>
Tue, 19 May 2020 04:24:41 +0000 (06:24 +0200)
committerTres Popp <tpopp@google.com>
Wed, 20 May 2020 08:26:35 +0000 (10:26 +0200)
Differential Revision: https://reviews.llvm.org/D80179

mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td

index 074a54f..d06a1ce 100644 (file)
@@ -369,7 +369,7 @@ def Shape_ConcatOp : Shape_Op<"concat",
 
 //TODO(tpopp): Move the code below and witnesses to a different file.
 def Shape_AnyOp : Shape_Op<"any",
-    [DeclareOpInterfaceMethods<InferTypeOpInterface>]> {
+    [NoSideEffect, DeclareOpInterfaceMethods<InferTypeOpInterface>]> {
   let summary = "Return any combination of the input shapes.";
   let description = [{
     This operation takes multiple input shapes and returns some combination of
@@ -389,7 +389,7 @@ def Shape_AnyOp : Shape_Op<"any",
   let results = (outs Shape_ShapeType:$result);
 }
 
-def Shape_AssumingAllOp : Shape_Op<"assuming_all", []> {
+def Shape_AssumingAllOp : Shape_Op<"assuming_all", [NoSideEffect]> {
   let summary = "Return a logical AND of all witnesses.";
   let description = [{
     Used to simplify constraints as any single failing precondition is enough