Skip to content

Commit 313de31

Browse files
committed
[mlir][tosa] Split tosa-to-linalg named ops out of pass
Linalg named ops lowering are moved to a separate pass. This allows TOSA canonicalizers to run between named-ops lowerings and the general TOSA lowerings. This allows the TOSA canonicalizers to run between lowerings. Reviewed By: NatashaKnk Differential Revision: https://reviews.llvm.org/D116057
1 parent 937b00a commit 313de31

File tree

9 files changed

+1426
-1273
lines changed

9 files changed

+1426
-1273
lines changed

mlir/include/mlir/Conversion/Passes.td

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,20 @@ def TosaToLinalg : FunctionPass<"tosa-to-linalg"> {
645645
let constructor = "tosa::createTosaToLinalg()";
646646
}
647647

648+
//===----------------------------------------------------------------------===//
649+
// TosaToLinalgNamed
650+
//===----------------------------------------------------------------------===//
651+
652+
def TosaToLinalgNamed : FunctionPass<"tosa-to-linalg-named"> {
653+
let summary = "Lower TOSA to LinAlg named operations";
654+
let description = [{
655+
Pass that converts TOSA operations to the equivalent operations using the
656+
Linalg named operations.
657+
}];
658+
659+
let constructor = "tosa::createTosaToLinalgNamed()";
660+
}
661+
648662
//===----------------------------------------------------------------------===//
649663
// TosaToSCF
650664
//===----------------------------------------------------------------------===//

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ namespace mlir {
2020
namespace tosa {
2121

2222
std::unique_ptr<Pass> createTosaToLinalg();
23+
std::unique_ptr<Pass> createTosaToLinalgNamed();
2324

2425
/// Populates passes to convert from TOSA to Linalg on buffers. At the end of
2526
/// the pass, the function will only contain linalg ops or standard ops if the
@@ -29,6 +30,9 @@ void addTosaToLinalgPasses(OpPassManager &pm);
2930
/// Populates conversion passes from TOSA dialect to Linalg dialect.
3031
void populateTosaToLinalgConversionPatterns(RewritePatternSet *patterns);
3132

33+
/// Populates conversion passes from TOSA dialect to Linalg named operations.
34+
void populateTosaToLinalgNamedConversionPatterns(RewritePatternSet *patterns);
35+
3236
} // namespace tosa
3337
} // namespace mlir
3438

mlir/lib/Conversion/TosaToLinalg/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
add_mlir_conversion_library(MLIRTosaToLinalg
22
TosaToLinalg.cpp
3+
TosaToLinalgNamed.cpp
4+
TosaToLinalgNamedPass.cpp
35
TosaToLinalgPass.cpp
46

57
ADDITIONAL_HEADER_DIRS

0 commit comments

Comments
 (0)