Skip to content

Commit a8db082

Browse files
Address @ftynse's comments: document decision from this PR.
Signed-off-by: Ingo Müller <[email protected]>
1 parent 2f05cb8 commit a8db082

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

mlir/include/mlir/Dialect/Transform/IR/TransformOps.td

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ def AlternativesOp : TransformDialectOp<"alternatives",
8787
transform.yield %arg0 : !transform.any_op
8888
}
8989
```
90+
91+
Note that this operation does not implement the `RegionBranchOpInterface`.
92+
That interface verifies that the operands and results passed across the
93+
control flow edges are equal (or compatible). In particular, it expects the
94+
result passed from a region to its successor to be the argument of that
95+
region; however, the argument of all `alternatives` regions are always
96+
provided by the parent op and never by the precedessor region.
9097
}];
9198

9299
let arguments = (ins Optional<TransformHandleTypeInterface>:$scope);
@@ -641,6 +648,14 @@ def ForeachOp : TransformDialectOp<"foreach",
641648
sequence fails immediately with the same failure, leaving the payload IR in
642649
a potentially invalid state, i.e., this operation offers no transformation
643650
rollback capabilities.
651+
652+
Note that this operation does not implement the `RegionBranchOpInterface`.
653+
That interface verifies that the operands and results passed across the
654+
control flow edges are equal (or compatible). In particular, it expects the
655+
result passed from a region to the parent to *be* the result of that op;
656+
however, the result of the `body` region only *contributes* to the result
657+
in that the result of the op is an aggregation of of the results of all
658+
iterations of the body.
644659
}];
645660

646661
let arguments = (ins Variadic<Transform_AnyHandleOrParamType>:$targets,

0 commit comments

Comments
 (0)