[Mlir-commits] [mlir] e4351f2 - [TOSA] Don't run validation pass on non TOSA operations (#120205)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Thu Dec 19 01:07:43 PST 2024
Author: Luke Hutton
Date: 2024-12-19T09:07:40Z
New Revision: e4351f27cdaa6ca80312b6fca5c160d78acd9bb4
URL: https://github.com/llvm/llvm-project/commit/e4351f27cdaa6ca80312b6fca5c160d78acd9bb4
DIFF: https://github.com/llvm/llvm-project/commit/e4351f27cdaa6ca80312b6fca5c160d78acd9bb4.diff
LOG: [TOSA] Don't run validation pass on non TOSA operations (#120205)
This commit ensures the validation pass is not run on operations from
other dialects. In doing so, operations from other dialects that, for
example, use types not supported by TOSA don't result in an error.
Signed-off-by: Luke Hutton <luke.hutton at arm.com>
Added:
Modified:
mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
mlir/test/Dialect/Tosa/invalid.mlir
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp b/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
index 893cedefc1ebde..6fd671051362ca 100644
--- a/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
+++ b/mlir/lib/Dialect/Tosa/Transforms/TosaValidation.cpp
@@ -543,6 +543,10 @@ bool TosaValidation::isValidElementType(Type type) {
void TosaValidation::runOnOperation() {
configLevelAndProfile();
getOperation().walk([&](Operation *op) {
+ if (!op->getDialect() ||
+ op->getDialect()->getNamespace() != TosaDialect::getDialectNamespace())
+ return;
+
for (Value operand : op->getOperands()) {
auto elementTy = getElementTypeOrSelf(operand);
if (!isValidElementType(elementTy)) {
diff --git a/mlir/test/Dialect/Tosa/invalid.mlir b/mlir/test/Dialect/Tosa/invalid.mlir
index 79bb7fce5755ef..cca50b25d14d6b 100644
--- a/mlir/test/Dialect/Tosa/invalid.mlir
+++ b/mlir/test/Dialect/Tosa/invalid.mlir
@@ -625,7 +625,6 @@ func.func @test_mul_invalid_shift(%arg0: tensor<13x21x3xf32>, %arg1: tensor<13x1
func.func @test_unsupported_int64_data_type(%arg0: tensor<1x13x13x5xf32>) -> tensor<1x13x13xi64> {
// expected-error at +1 {{'tosa.argmax' op is not profile-aligned: element type 'i64' is not legal}}
%0 = tosa.argmax %arg0 {axis = 3 : i32} : (tensor<1x13x13x5xf32>) -> tensor<1x13x13xi64>
- // expected-error at +1 {{'func.return' op is not profile-aligned: element type 'i64' is not legal}}
return %0 : tensor<1x13x13xi64>
}
@@ -879,4 +878,13 @@ func.func @test_mismatch_in_out_shape_logical_not(%arg0: tensor<1x21x3xi1>) -> t
// expected-error at +1 {{'tosa.logical_not' op requires the same shape for all operands and results}}
%0 = tosa.logical_not %arg0 : (tensor<1x21x3xi1>) -> tensor<13x21x3xi1>
return %0 : tensor<13x21x3xi1>
-}
\ No newline at end of file
+}
+
+// -----
+
+// Check validate pass doesn't run on non TOSA ops
+func.func @test_non_tosa_ops() {
+ %0 = arith.constant 6 : index
+ %2 = tensor.empty(%0) : tensor<?x27xi64>
+ return
+}
More information about the Mlir-commits
mailing list