[Mlir-commits] [mlir] [mlir] Add `areLoopIterArgTypesCompatible` to `LoopLikeOpInterface` (PR #184116)
Oleksandr Alex Zinenko
llvmlistbot at llvm.org
Mon Mar 2 06:35:29 PST 2026
================
@@ -2717,6 +2717,41 @@ def TestNoTerminatorOp : TEST_Op<"switch_with_no_break", [
}];
}
+//===----------------------------------------------------------------------===//
+// Test areTypesCompatible for RegionBranchOpInterface / LoopLikeOpInterface
+//===----------------------------------------------------------------------===//
+
+def TestTypesCompatYieldOp : TEST_Op<"types_compat_yield",
+ [Pure, ReturnLike, Terminator]> {
+ let arguments = (ins Variadic<AnyType>:$args);
+ let assemblyFormat = "($args^ `:` type($args))? attr-dict";
+}
+
+def TestRegionTypesCompatOp : TEST_Op<"region_types_compat",
+ [DeclareOpInterfaceMethods<RegionBranchOpInterface,
+ ["getEntrySuccessorOperands", "getSuccessorInputs",
+ "areTypesCompatible"]>,
+ SingleBlockImplicitTerminator<"TestTypesCompatYieldOp">,
+ RecursiveMemoryEffects]> {
+ let arguments = (ins Variadic<AnyType>:$entries);
+ let results = (outs Variadic<AnyType>:$results);
+ let regions = (region SizedRegion<1>:$body);
+}
+
+def TestLoopTypesCompatOp : TEST_Op<"loop_types_compat",
+ [DeclareOpInterfaceMethods<LoopLikeOpInterface,
+ ["getInitsMutable", "getRegionIterArgs", "getYieldedValuesMutable",
+ "getLoopResults", "getLoopRegions", "areLoopIterArgTypesCompatible"]>,
----------------
ftynse wrote:
Do we need this laundry list? Only methods that have a default implementation should be explicitly listed, the list parameter is for redefinition.
https://github.com/llvm/llvm-project/pull/184116
More information about the Mlir-commits
mailing list