[Mlir-commits] [mlir] [mlir][tosa] Remove profile compliance of cond_if and while_loop (PR #148212)
Luke Hutton
llvmlistbot at llvm.org
Fri Jul 11 03:57:22 PDT 2025
https://github.com/lhutton1 created https://github.com/llvm/llvm-project/pull/148212
The requirement for a boolean condition is already checked for both operators elsewhere. `cond_if` requires a boolean condition at construction. `while_loop` cond_graph is checked in the verifier for a scalar boolean output type.
>From 680b864cdc78bfd87317a0e003e9f6677d9eab19 Mon Sep 17 00:00:00 2001
From: Luke Hutton <luke.hutton at arm.com>
Date: Wed, 9 Jul 2025 10:32:16 +0000
Subject: [PATCH] [mlir][tosa] Remove profile compliance of cond_if and
while_loop
The requirement for a boolean condition is already checked for both
operators elsewhere. `cond_if` requires a boolean condition at
construction. `while_loop` cond_graph is checked in the verifier for
a scalar boolean output type.
Change-Id: I508dc664a44cf163fcc3fb7731ae8369424de132
---
.../Dialect/Tosa/IR/TosaComplianceData.h.inc | 2 --
.../Tosa/Transforms/TosaProfileCompliance.cpp | 18 ++----------------
2 files changed, 2 insertions(+), 18 deletions(-)
diff --git a/mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc b/mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
index c77da91942ef9..1f718accabd15 100644
--- a/mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
+++ b/mlir/include/mlir/Dialect/Tosa/IR/TosaComplianceData.h.inc
@@ -433,8 +433,6 @@ extensionComplianceMap = {
{{Extension::fp8e4m3}, {{fp8e4m3T, fp8e4m3T}}},
{{Extension::fp8e5m2}, {{fp8e5m2T, fp8e5m2T}}},
{{Extension::bf16}, {{bf16T, bf16T}}}}},
- {"tosa.cond_if", {{{Extension::controlflow}, {{boolT}}}}},
- {"tosa.while_loop", {{{Extension::controlflow}, {{boolT}}}}},
{"tosa.variable", {{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
{"tosa.variable_write",
{{{Extension::variable}, {{i8T}, {fp16T}, {fp32T}}}}},
diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
index a4edccfd4c9c7..88b0f3650ca01 100644
--- a/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
+++ b/mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
@@ -225,20 +225,6 @@ LogicalResult ProfileInfoDepot::populateProfileInfo(tosa::VariableWriteOp op) {
return success();
}
-template <>
-LogicalResult ProfileInfoDepot::populateProfileInfo(tosa::IfOp op) {
- addValue(op.getCondition());
- return success();
-}
-
-template <>
-LogicalResult ProfileInfoDepot::populateProfileInfo(tosa::WhileOp op) {
- Block *block = &op.getCondGraph().front();
- Operation *terminator = block->getTerminator();
- addValue(terminator->getOperands().front());
- return success();
-}
-
LogicalResult ProfileInfoDepot::populatationDispatch(Operation *op) {
// This helper function only populates the info for the customised operands.
#define POPULATE_PROFILE_INFO_CUSTOM(tosaOp) \
@@ -280,8 +266,6 @@ LogicalResult ProfileInfoDepot::populatationDispatch(Operation *op) {
POPULATE_PROFILE_INFO_CUSTOM(MatMul)
POPULATE_PROFILE_INFO_CUSTOM(Variable)
POPULATE_PROFILE_INFO_CUSTOM(VariableWrite)
- POPULATE_PROFILE_INFO_CUSTOM(If)
- POPULATE_PROFILE_INFO_CUSTOM(While)
// For the most of tosa operators, all operands are profile/extension related
// and hence are all considered in this profile-based compilance check.
@@ -340,6 +324,8 @@ LogicalResult ProfileInfoDepot::populatationDispatch(Operation *op) {
// constraint for those operations.
POPULATE_PROFILE_INFO_SKIP(ConstShape)
POPULATE_PROFILE_INFO_SKIP(Yield)
+ POPULATE_PROFILE_INFO_SKIP(If)
+ POPULATE_PROFILE_INFO_SKIP(While)
return failure();
}
More information about the Mlir-commits
mailing list