[Mlir-commits] [mlir] ecce5cc - TosaToLinalg: Allow to skip the TOSA validation pass (#91742)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon May 13 23:28:44 PDT 2024
Author: Matthias Gehre
Date: 2024-05-14T08:28:41+02:00
New Revision: ecce5ccdd5725bd0669c24742bfd46dbf043fec2
URL: https://github.com/llvm/llvm-project/commit/ecce5ccdd5725bd0669c24742bfd46dbf043fec2
DIFF: https://github.com/llvm/llvm-project/commit/ecce5ccdd5725bd0669c24742bfd46dbf043fec2.diff
LOG: TosaToLinalg: Allow to skip the TOSA validation pass (#91742)
Allow to skip running the TOSA validation pass when spec conformance is
not required.
Added:
Modified:
mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h b/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
index 5fd77c8a0211a..67965e34d8a3d 100644
--- a/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
+++ b/mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h
@@ -38,8 +38,9 @@ void addTosaToLinalgPasses(
const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions =
TosaToLinalgNamedOptions(),
// Note: Default to 'none' level unless otherwise specified.
- tosa::TosaValidationOptions const &validationOptions = {
- tosa::TosaProfileEnum::Undefined, false, tosa::TosaLevelEnum::None});
+ std::optional<tosa::TosaValidationOptions> validationOptions =
+ tosa::TosaValidationOptions{tosa::TosaProfileEnum::Undefined, false,
+ tosa::TosaLevelEnum::None});
/// Populates TOSA to linalg pipelines
/// Currently, this includes only the "tosa-to-linalg-pipeline".
diff --git a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
index ad7f6cf84e5ed..8904e3253922c 100644
--- a/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
+++ b/mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp
@@ -78,7 +78,7 @@ std::unique_ptr<Pass> mlir::tosa::createTosaToLinalg() {
void mlir::tosa::addTosaToLinalgPasses(
OpPassManager &pm, const TosaToLinalgOptions &options,
const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions,
- tosa::TosaValidationOptions const &validationOptions) {
+ std::optional<tosa::TosaValidationOptions> validationOptions) {
// Optional decompositions are designed to benefit linalg.
if (!options.disableTosaDecompositions)
pm.addNestedPass<func::FuncOp>(tosa::createTosaOptionalDecompositions());
@@ -93,7 +93,8 @@ void mlir::tosa::addTosaToLinalgPasses(
pm.addNestedPass<func::FuncOp>(tosa::createTosaLayerwiseConstantFoldPass(
{options.aggressiveReduceConstant}));
pm.addNestedPass<func::FuncOp>(tosa::createTosaMakeBroadcastablePass());
- pm.addPass(tosa::createTosaValidation(validationOptions));
+ if (validationOptions)
+ pm.addPass(tosa::createTosaValidation(*validationOptions));
pm.addNestedPass<func::FuncOp>(tosa::createTosaToLinalg());
}
@@ -110,11 +111,12 @@ void mlir::tosa::registerTosaToLinalgPipelines() {
[](OpPassManager &pm) {
TosaToLinalgOptions tosaToLinalgOptions;
TosaToLinalgNamedOptions tosaToLinalgNamedOptions;
+ TosaValidationOptions validationOptions;
+ validationOptions.profile = tosa::TosaProfileEnum::BaseInference;
+ validationOptions.StrictOperationSpecAlignment = true;
+ validationOptions.level = tosa::TosaLevelEnum::EightK;
tosa::addTosaToLinalgPasses(pm, tosaToLinalgOptions,
tosaToLinalgNamedOptions,
- /* validationOptions = */
- {tosa::TosaProfileEnum::BaseInference,
- /* StrictOperationSpecAlignment = */ true,
- tosa::TosaLevelEnum::EightK});
+ validationOptions);
});
}
More information about the Mlir-commits
mailing list