[llvm-branch-commits] [mlir] [mlir][Interfaces] Disallow tokens in `BranchOpInterface` / `RegionBranchOpInterface` verifiers (PR #197131)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 12 02:17:41 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Matthias Springer (matthias-springer)
<details>
<summary>Changes</summary>
Verify that tokens are not used as forwarded values in `BranchOpInterface` and `RegionBranchOpInterface`. The existing verification is ODS-only. This commit adds verification for ops that implement one of these interfaces and are not defined in ODS.
Depends on #<!-- -->195640.
---
Full diff: https://github.com/llvm/llvm-project/pull/197131.diff
1 Files Affected:
- (modified) mlir/lib/Interfaces/ControlFlowInterfaces.cpp (+14)
``````````diff
diff --git a/mlir/lib/Interfaces/ControlFlowInterfaces.cpp b/mlir/lib/Interfaces/ControlFlowInterfaces.cpp
index c3fb73acf5ef0..be97c3740e1b6 100644
--- a/mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+++ b/mlir/lib/Interfaces/ControlFlowInterfaces.cpp
@@ -91,6 +91,13 @@ detail::verifyBranchSuccessorOperands(Operation *op, unsigned succNo,
<< ", but target block has "
<< destBB->getNumArguments();
+ // Check that no token type is used as a forwarded operand.
+ for (Value operand : operands.getForwardedOperands()) {
+ if (isa<TokenType>(operand.getType()))
+ return op->emitError()
+ << "token type is not allowed as a forwarded operand";
+ }
+
// Check the types.
LDBG() << "Checking type compatibility for "
<< (operandCount - operands.getProducedOperandCount())
@@ -203,6 +210,13 @@ LogicalResult detail::verifyRegionBranchOpInterface(Operation *op) {
<< " inputs";
}
+ // Verify that no token type is used as a forwarded operand.
+ for (Value operand : succOperands) {
+ if (isa<TokenType>(operand.getType()))
+ return emitRegionEdgeError()
+ << ": token type is not allowed as a forwarded operand";
+ }
+
// Verify that the types are compatible.
TypeRange succInputTypes = succInputs.getTypes();
TypeRange succOperandTypes = succOperands.getTypes();
``````````
</details>
https://github.com/llvm/llvm-project/pull/197131
More information about the llvm-branch-commits
mailing list