[Mlir-commits] [mlir] [mlir][SCF] Remove `RegionBranchOpInterface` from `scf.forall` (PR #174221)

Oleksandr Alex Zinenko llvmlistbot at llvm.org
Tue Jan 6 01:00:30 PST 2026


ftynse wrote:

I am not sure about the "interface implementation completeness": do we require somewhere that terminators in operations implementing `RegionBranchOpInterface` must implement `RegionBranchTerminatorOpInterface` (if so, I'd perhaps add an assertion somehow)? In my reading, the current implementation says as much as we can say using this interface about control flow: it flows from before the op to the region and then to after the op, no values are being forwarded as-is anywhere (hence no need for `RegionBranchTerminatorOpInterface`). IMO, short of the requirement connecting the two interfaces, the logic using them should be robust to the terminator not implementing the interface since nothing guaranteed it. We can also have `RegionBranchTerminatorOpInterface` on `scf.in_parallel` and have it return an empty range of operands as forwarded to results.

I'm also not opposed to the change, but I think we need to nail it down this time.

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


More information about the Mlir-commits mailing list