@@ -87,6 +87,13 @@ def AlternativesOp : TransformDialectOp<"alternatives",
87
87
transform.yield %arg0 : !transform.any_op
88
88
}
89
89
```
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.
90
97
}];
91
98
92
99
let arguments = (ins Optional<TransformHandleTypeInterface>:$scope);
@@ -641,6 +648,14 @@ def ForeachOp : TransformDialectOp<"foreach",
641
648
sequence fails immediately with the same failure, leaving the payload IR in
642
649
a potentially invalid state, i.e., this operation offers no transformation
643
650
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.
644
659
}];
645
660
646
661
let arguments = (ins Variadic<Transform_AnyHandleOrParamType>:$targets,
0 commit comments