[Mlir-commits] [mlir] [mlir][tosa] Converted TosaAvailability pass to ModuleOp from FuncOp, fixes crash in threaded pass manager (PR #183063)
Arjun Bhamra
llvmlistbot at llvm.org
Tue Feb 24 06:26:02 PST 2026
https://github.com/abhamra updated https://github.com/llvm/llvm-project/pull/183063
>From 1a344cc11f55af7102154b6d71f69e95c84159bb Mon Sep 17 00:00:00 2001
From: Arjun Bhamra <arjun.bhamra25 at gmail.com>
Date: Tue, 24 Feb 2026 09:21:43 -0500
Subject: [PATCH] converted TosaAvailability pass to ModuleOp from FuncOp
---
.../lib/Dialect/Tosa/TestAvailability.cpp | 66 ++++++++++---------
1 file changed, 34 insertions(+), 32 deletions(-)
diff --git a/mlir/test/lib/Dialect/Tosa/TestAvailability.cpp b/mlir/test/lib/Dialect/Tosa/TestAvailability.cpp
index bec563d1ec747..ce18a936d32d2 100644
--- a/mlir/test/lib/Dialect/Tosa/TestAvailability.cpp
+++ b/mlir/test/lib/Dialect/Tosa/TestAvailability.cpp
@@ -19,7 +19,7 @@ using namespace mlir;
namespace {
/// A pass for testing Tosa op availability.
struct PrintOpAvailability
- : public PassWrapper<PrintOpAvailability, OperationPass<func::FuncOp>> {
+ : public PassWrapper<PrintOpAvailability, OperationPass<ModuleOp>> {
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(PrintOpAvailability)
void runOnOperation() override;
@@ -29,46 +29,48 @@ struct PrintOpAvailability
} // namespace
void PrintOpAvailability::runOnOperation() {
- auto f = getOperation();
- llvm::outs() << f.getName() << "\n";
+ auto module = getOperation();
+ for (auto f : module.getOps<func::FuncOp>()) {
+ llvm::outs() << f.getName() << "\n";
- Dialect *tosaDialect = getContext().getLoadedDialect("tosa");
+ Dialect *tosaDialect = getContext().getLoadedDialect("tosa");
- f->walk([&](Operation *op) {
- if (op->getDialect() != tosaDialect)
- return WalkResult::advance();
+ f->walk([&](Operation *op) {
+ if (op->getDialect() != tosaDialect)
+ return WalkResult::advance();
- auto opName = op->getName();
- auto &os = llvm::outs();
+ auto opName = op->getName();
+ auto &os = llvm::outs();
- if (auto profile = dyn_cast<tosa::QueryProfileInterface>(op)) {
- os << opName << " profiles: [";
- for (const auto &profs : profile.getProfiles()) {
- os << " [";
- llvm::interleaveComma(profs, os, [&](tosa::Profile prof) {
- os << tosa::stringifyProfile(prof);
- });
- os << "]";
+ if (auto profile = dyn_cast<tosa::QueryProfileInterface>(op)) {
+ os << opName << " profiles: [";
+ for (const auto &profs : profile.getProfiles()) {
+ os << " [";
+ llvm::interleaveComma(profs, os, [&](tosa::Profile prof) {
+ os << tosa::stringifyProfile(prof);
+ });
+ os << "]";
+ }
+ os << " ]\n";
}
- os << " ]\n";
- }
- if (auto extension = dyn_cast<tosa::QueryExtensionInterface>(op)) {
- os << opName << " extensions: [";
- for (const auto &exts : extension.getExtensions()) {
- os << " [";
- llvm::interleaveComma(exts, os, [&](tosa::Extension ext) {
- os << tosa::stringifyExtension(ext);
- });
- os << "]";
+ if (auto extension = dyn_cast<tosa::QueryExtensionInterface>(op)) {
+ os << opName << " extensions: [";
+ for (const auto &exts : extension.getExtensions()) {
+ os << " [";
+ llvm::interleaveComma(exts, os, [&](tosa::Extension ext) {
+ os << tosa::stringifyExtension(ext);
+ });
+ os << "]";
+ }
+ os << " ]\n";
}
- os << " ]\n";
- }
- os.flush();
+ os.flush();
- return WalkResult::advance();
- });
+ return WalkResult::advance();
+ });
+ }
}
namespace mlir {
More information about the Mlir-commits
mailing list