Skip to content

Commit ecce5cc

Browse files
authored
TosaToLinalg: Allow to skip the TOSA validation pass (#91742)
Allow to skip running the TOSA validation pass when spec conformance is not required.
1 parent ea23897 commit ecce5cc

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

mlir/include/mlir/Conversion/TosaToLinalg/TosaToLinalg.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ void addTosaToLinalgPasses(
3838
const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions =
3939
TosaToLinalgNamedOptions(),
4040
// Note: Default to 'none' level unless otherwise specified.
41-
tosa::TosaValidationOptions const &validationOptions = {
42-
tosa::TosaProfileEnum::Undefined, false, tosa::TosaLevelEnum::None});
41+
std::optional<tosa::TosaValidationOptions> validationOptions =
42+
tosa::TosaValidationOptions{tosa::TosaProfileEnum::Undefined, false,
43+
tosa::TosaLevelEnum::None});
4344

4445
/// Populates TOSA to linalg pipelines
4546
/// Currently, this includes only the "tosa-to-linalg-pipeline".

mlir/lib/Conversion/TosaToLinalg/TosaToLinalgPass.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ std::unique_ptr<Pass> mlir::tosa::createTosaToLinalg() {
7878
void mlir::tosa::addTosaToLinalgPasses(
7979
OpPassManager &pm, const TosaToLinalgOptions &options,
8080
const TosaToLinalgNamedOptions &tosaToLinalgNamedOptions,
81-
tosa::TosaValidationOptions const &validationOptions) {
81+
std::optional<tosa::TosaValidationOptions> validationOptions) {
8282
// Optional decompositions are designed to benefit linalg.
8383
if (!options.disableTosaDecompositions)
8484
pm.addNestedPass<func::FuncOp>(tosa::createTosaOptionalDecompositions());
@@ -93,7 +93,8 @@ void mlir::tosa::addTosaToLinalgPasses(
9393
pm.addNestedPass<func::FuncOp>(tosa::createTosaLayerwiseConstantFoldPass(
9494
{options.aggressiveReduceConstant}));
9595
pm.addNestedPass<func::FuncOp>(tosa::createTosaMakeBroadcastablePass());
96-
pm.addPass(tosa::createTosaValidation(validationOptions));
96+
if (validationOptions)
97+
pm.addPass(tosa::createTosaValidation(*validationOptions));
9798
pm.addNestedPass<func::FuncOp>(tosa::createTosaToLinalg());
9899
}
99100

@@ -110,11 +111,12 @@ void mlir::tosa::registerTosaToLinalgPipelines() {
110111
[](OpPassManager &pm) {
111112
TosaToLinalgOptions tosaToLinalgOptions;
112113
TosaToLinalgNamedOptions tosaToLinalgNamedOptions;
114+
TosaValidationOptions validationOptions;
115+
validationOptions.profile = tosa::TosaProfileEnum::BaseInference;
116+
validationOptions.StrictOperationSpecAlignment = true;
117+
validationOptions.level = tosa::TosaLevelEnum::EightK;
113118
tosa::addTosaToLinalgPasses(pm, tosaToLinalgOptions,
114119
tosaToLinalgNamedOptions,
115-
/* validationOptions = */
116-
{tosa::TosaProfileEnum::BaseInference,
117-
/* StrictOperationSpecAlignment = */ true,
118-
tosa::TosaLevelEnum::EightK});
120+
validationOptions);
119121
});
120122
}

0 commit comments

Comments
 (0)