[llvm] [NFC] Replace `GetPatFromTreePatternNode` with `llvm::to_string` (PR #123754)

Tomas Matheson via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 21 06:30:11 PST 2025


https://github.com/tmatheson-arm created https://github.com/llvm/llvm-project/pull/123754

A couple of small tablegen changes, to simplify an upcoming patch:
- Replace `GetPatFromTreePatternNode` with `llvm::to_string`
- make `getInstructionsInTree` `const`


>From 6d10a23346c06334c2ef4e1dbab81d017cf5d445 Mon Sep 17 00:00:00 2001
From: Tomas Matheson <tomas.matheson at arm.com>
Date: Fri, 9 Feb 2024 15:11:31 +0000
Subject: [PATCH 1/2] [NFC] replace GetPatFromTreePatternNode with
 llvm::to_string

---
 llvm/utils/TableGen/DAGISelMatcherEmitter.cpp | 20 +++++--------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
index f056306b2f8571..c4098f3c2d1bc7 100644
--- a/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+++ b/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
@@ -22,6 +22,7 @@
 #include "llvm/ADT/TinyPtrVector.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Format.h"
+#include "llvm/Support/ScopedPrinter.h" // for llvm::to_string
 #include "llvm/Support/SourceMgr.h"
 #include "llvm/TableGen/Error.h"
 #include "llvm/TableGen/Record.h"
@@ -214,13 +215,6 @@ class MatcherTableEmitter {
 };
 } // end anonymous namespace.
 
-static std::string GetPatFromTreePatternNode(const TreePatternNode &N) {
-  std::string str;
-  raw_string_ostream Stream(str);
-  Stream << N;
-  return str;
-}
-
 static unsigned GetVBRSize(unsigned Val) {
   if (Val <= 127)
     return 1;
@@ -941,10 +935,8 @@ unsigned MatcherTableEmitter::EmitMatcher(const Matcher *N,
       if (const MorphNodeToMatcher *SNT = dyn_cast<MorphNodeToMatcher>(N)) {
         NumCoveredBytes = 3;
         OS << "OPC_Coverage, ";
-        std::string src =
-            GetPatFromTreePatternNode(SNT->getPattern().getSrcPattern());
-        std::string dst =
-            GetPatFromTreePatternNode(SNT->getPattern().getDstPattern());
+        std::string src = to_string(SNT->getPattern().getSrcPattern());
+        std::string dst = to_string(SNT->getPattern().getDstPattern());
         const Record *PatRecord = SNT->getPattern().getSrcRecord();
         std::string include_src = getIncludePath(PatRecord);
         unsigned Offset =
@@ -1054,10 +1046,8 @@ unsigned MatcherTableEmitter::EmitMatcher(const Matcher *N,
     if (InstrumentCoverage) {
       NumCoveredBytes = 3;
       OS << "OPC_Coverage, ";
-      std::string src =
-          GetPatFromTreePatternNode(CM->getPattern().getSrcPattern());
-      std::string dst =
-          GetPatFromTreePatternNode(CM->getPattern().getDstPattern());
+      std::string src = to_string(CM->getPattern().getSrcPattern());
+      std::string dst = to_string(CM->getPattern().getDstPattern());
       const Record *PatRecord = CM->getPattern().getSrcRecord();
       std::string include_src = getIncludePath(PatRecord);
       unsigned Offset =

>From 3fa2cf6b1a6a4509635c2c90bed2876beb748110 Mon Sep 17 00:00:00 2001
From: Tomas Matheson <tomas.matheson at arm.com>
Date: Fri, 9 Feb 2024 15:58:51 +0000
Subject: [PATCH 2/2] make getInstructionsInTree const

---
 llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
index 013135a9def1f5..b95fe4eedda83e 100644
--- a/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
@@ -3715,7 +3715,7 @@ static bool hasNullFragReference(const ListInit *LI) {
 }
 
 /// Get all the instructions in a tree.
-static void getInstructionsInTree(TreePatternNode &Tree,
+static void getInstructionsInTree(const TreePatternNode &Tree,
                                   SmallVectorImpl<const Record *> &Instrs) {
   if (Tree.isLeaf())
     return;



More information about the llvm-commits mailing list