[Mlir-commits] [mlir] [mlir][transform] Overhaul `RegionBranchOpInterface` implementations. (PR #111408)

Ingo Müller llvmlistbot at llvm.org
Thu Oct 10 02:35:31 PDT 2024


================
@@ -104,16 +104,8 @@ transform::AlternativesOp::getEntrySuccessorOperands(RegionBranchPoint point) {
 
 void transform::AlternativesOp::getSuccessorRegions(
     RegionBranchPoint point, SmallVectorImpl<RegionSuccessor> &regions) {
-  for (Region &alternative : llvm::drop_begin(
----------------
ingomueller-net wrote:

In `sequence`, I think the sentences matches, no? When control reaches `yield`, the operands of yield are forwarded to the parent op, they become the result of the op, and "control flow leaves [the] op," right?

What doesn't quite fit for `foreach` and `alternatives` is the "control flow leaves [the] op" part. One could argue that the "region successor is a [part of or a potential] range of results of [the] op," but then the control flow does *not* leave the op; instead it may go to the next region or re-enter the body. Plus there are rules about how to combine the different results yielded by different regions/iterations (though the types always match).

https://github.com/llvm/llvm-project/pull/111408


More information about the Mlir-commits mailing list