[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