[Mlir-commits] [mlir] [mlir] Use getAttr to replace getInherentAttr in the test-symbol-uses pass (PR #172675)
lonely eagle
llvmlistbot at llvm.org
Wed Dec 17 18:06:50 PST 2025
https://github.com/linuxlonelyeagle updated https://github.com/llvm/llvm-project/pull/172675
>From d4a5558da9e142be5e992fbe7631687f044215d4 Mon Sep 17 00:00:00 2001
From: linuxlonelyeagle <2020382038 at qq.com>
Date: Wed, 17 Dec 2025 15:07:24 +0000
Subject: [PATCH 1/2] use getAttr to replace getInherentAttr.
---
mlir/test/lib/IR/TestSymbolUses.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mlir/test/lib/IR/TestSymbolUses.cpp b/mlir/test/lib/IR/TestSymbolUses.cpp
index b470b15c533b5..59014b93a0df7 100644
--- a/mlir/test/lib/IR/TestSymbolUses.cpp
+++ b/mlir/test/lib/IR/TestSymbolUses.cpp
@@ -59,7 +59,7 @@ struct SymbolUsesPass
symbolUse.getUser()->getParentOp(), symbolUse.getSymbolRef())) {
symbolUse.getUser()->emitRemark()
<< "found use of symbol : " << symbolUse.getSymbolRef() << " : "
- << *symbol->getInherentAttr(SymbolTable::getSymbolAttrName());
+ << symbol->getAttr(SymbolTable::getSymbolAttrName());
}
}
symbol->emitRemark() << "symbol has " << llvm::size(*symbolUses) << " uses";
>From 6c1afcb6d58f0519d60057603f4c8c0b3f636920 Mon Sep 17 00:00:00 2001
From: linuxlonelyeagle <2020382038 at qq.com>
Date: Thu, 18 Dec 2025 02:06:34 +0000
Subject: [PATCH 2/2] use SymbolOpInterface to implement operateOnSymbol.
---
mlir/test/lib/IR/TestSymbolUses.cpp | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/mlir/test/lib/IR/TestSymbolUses.cpp b/mlir/test/lib/IR/TestSymbolUses.cpp
index 59014b93a0df7..5d2eb79de7e37 100644
--- a/mlir/test/lib/IR/TestSymbolUses.cpp
+++ b/mlir/test/lib/IR/TestSymbolUses.cpp
@@ -23,7 +23,7 @@ struct SymbolUsesPass
StringRef getDescription() const final {
return "Test detection of symbol uses";
}
- WalkResult operateOnSymbol(Operation *symbol, ModuleOp module,
+ WalkResult operateOnSymbol(SymbolOpInterface symbol, ModuleOp module,
SmallVectorImpl<func::FuncOp> &deadFunctions) {
// Test computing uses on a non symboltable op.
std::optional<SymbolTable::UseRange> symbolUses =
@@ -42,7 +42,7 @@ struct SymbolUsesPass
// Test the functionality of symbolKnownUseEmpty.
if (SymbolTable::symbolKnownUseEmpty(symbol, &module.getBodyRegion())) {
- func::FuncOp funcSymbol = dyn_cast<func::FuncOp>(symbol);
+ func::FuncOp funcSymbol = dyn_cast<func::FuncOp>(symbol.getOperation());
if (funcSymbol && funcSymbol.isExternal())
deadFunctions.push_back(funcSymbol);
@@ -51,7 +51,7 @@ struct SymbolUsesPass
}
// Test the functionality of getSymbolUses.
- symbolUses = SymbolTable::getSymbolUses(symbol, &module.getBodyRegion());
+ symbolUses = symbol.getSymbolUses(module);
assert(symbolUses && "expected no unknown operations");
for (SymbolTable::SymbolUse symbolUse : *symbolUses) {
// Check that we can resolve back to our symbol.
@@ -59,7 +59,7 @@ struct SymbolUsesPass
symbolUse.getUser()->getParentOp(), symbolUse.getSymbolRef())) {
symbolUse.getUser()->emitRemark()
<< "found use of symbol : " << symbolUse.getSymbolRef() << " : "
- << symbol->getAttr(SymbolTable::getSymbolAttrName());
+ << symbol.getNameAttr();
}
}
symbol->emitRemark() << "symbol has " << llvm::size(*symbolUses) << " uses";
@@ -71,9 +71,8 @@ struct SymbolUsesPass
// Walk nested symbols.
SmallVector<func::FuncOp, 4> deadFunctions;
- module.getBodyRegion().walk([&](Operation *nestedOp) {
- if (isa<SymbolOpInterface>(nestedOp))
- return operateOnSymbol(nestedOp, module, deadFunctions);
+ module.getBodyRegion().walk([&](SymbolOpInterface nestedOp) {
+ return operateOnSymbol(nestedOp, module, deadFunctions);
return WalkResult::advance();
});
More information about the Mlir-commits
mailing list