[llvm] 00171b3 - [NFC][TableGen] Adopt CodeGenHelpers in SDNodeInfoEmitter (#165622)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 5 11:07:01 PST 2025
Author: Rahul Joshi
Date: 2025-11-05T11:06:57-08:00
New Revision: 00171b352def8afa314c89a090501e890326fb34
URL: https://github.com/llvm/llvm-project/commit/00171b352def8afa314c89a090501e890326fb34
DIFF: https://github.com/llvm/llvm-project/commit/00171b352def8afa314c89a090501e890326fb34.diff
LOG: [NFC][TableGen] Adopt CodeGenHelpers in SDNodeInfoEmitter (#165622)
Use `IfDefEmitter` and `NamespaceEmitter` in SDNodeInfoEmitter.
Added:
Modified:
llvm/test/TableGen/SDNodeInfoEmitter/no-nodes.td
llvm/utils/TableGen/SDNodeInfoEmitter.cpp
Removed:
################################################################################
diff --git a/llvm/test/TableGen/SDNodeInfoEmitter/no-nodes.td b/llvm/test/TableGen/SDNodeInfoEmitter/no-nodes.td
index 0c5c63db4c95b..cc0f87755cdc2 100644
--- a/llvm/test/TableGen/SDNodeInfoEmitter/no-nodes.td
+++ b/llvm/test/TableGen/SDNodeInfoEmitter/no-nodes.td
@@ -20,6 +20,7 @@ def MyTarget : Target;
// CHECK-EMPTY:
// CHECK-NEXT: namespace llvm {
// CHECK-EMPTY:
+// CHECK-EMPTY:
// CHECK-NEXT: #ifdef __GNUC__
// CHECK-NEXT: #pragma GCC diagnostic push
// CHECK-NEXT: #pragma GCC diagnostic ignored "-Woverlength-strings"
diff --git a/llvm/utils/TableGen/SDNodeInfoEmitter.cpp b/llvm/utils/TableGen/SDNodeInfoEmitter.cpp
index 64f03dae83e7d..dd18d29e6c676 100644
--- a/llvm/utils/TableGen/SDNodeInfoEmitter.cpp
+++ b/llvm/utils/TableGen/SDNodeInfoEmitter.cpp
@@ -10,6 +10,7 @@
#include "Common/CodeGenDAGPatterns.h" // For SDNodeInfo.
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/FormatVariadic.h"
+#include "llvm/TableGen/CodeGenHelpers.h"
#include "llvm/TableGen/Error.h"
#include "llvm/TableGen/StringToOffsetTable.h"
#include "llvm/TableGen/TableGenBackend.h"
@@ -129,9 +130,8 @@ SDNodeInfoEmitter::SDNodeInfoEmitter(const RecordKeeper &RK)
}
void SDNodeInfoEmitter::emitEnum(raw_ostream &OS) const {
- OS << "#ifdef GET_SDNODE_ENUM\n";
- OS << "#undef GET_SDNODE_ENUM\n\n";
- OS << "namespace llvm::" << TargetSDNodeNamespace << " {\n\n";
+ IfDefEmitter IfDef(OS, "GET_SDNODE_ENUM");
+ NamespaceEmitter NS(OS, "llvm::" + TargetSDNodeNamespace);
if (!NodesByName.empty()) {
StringRef FirstName = NodesByName.begin()->first;
@@ -145,14 +145,11 @@ void SDNodeInfoEmitter::emitEnum(raw_ostream &OS) const {
OS << "};\n\n";
OS << "static constexpr unsigned GENERATED_OPCODE_END = " << LastName
- << " + 1;\n\n";
+ << " + 1;\n";
} else {
OS << "static constexpr unsigned GENERATED_OPCODE_END = "
- "ISD::BUILTIN_OP_END;\n\n";
+ "ISD::BUILTIN_OP_END;\n";
}
-
- OS << "} // namespace llvm::" << TargetSDNodeNamespace << "\n\n";
- OS << "#endif // GET_SDNODE_ENUM\n\n";
}
std::vector<unsigned> SDNodeInfoEmitter::emitNodeNames(raw_ostream &OS) const {
@@ -324,9 +321,8 @@ static void emitDesc(raw_ostream &OS, StringRef EnumName,
void SDNodeInfoEmitter::emitDescs(raw_ostream &OS) const {
StringRef TargetName = Target.getName();
- OS << "#ifdef GET_SDNODE_DESC\n";
- OS << "#undef GET_SDNODE_DESC\n\n";
- OS << "namespace llvm {\n";
+ IfDefEmitter IfDef(OS, "GET_SDNODE_DESC");
+ NamespaceEmitter NS(OS, "llvm");
std::vector<unsigned> NameOffsets = emitNodeNames(OS);
std::vector<std::pair<unsigned, unsigned>> ConstraintOffsetsAndCounts =
@@ -343,11 +339,8 @@ void SDNodeInfoEmitter::emitDescs(raw_ostream &OS) const {
OS << formatv("static const SDNodeInfo {0}GenSDNodeInfo(\n"
" /*NumOpcodes=*/{1}, {0}SDNodeDescs,\n"
- " {0}SDNodeNames, {0}SDTypeConstraints);\n\n",
+ " {0}SDNodeNames, {0}SDTypeConstraints);\n",
TargetName, NodesByName.size());
-
- OS << "} // namespace llvm\n\n";
- OS << "#endif // GET_SDNODE_DESC\n\n";
}
void SDNodeInfoEmitter::run(raw_ostream &OS) const {
More information about the llvm-commits
mailing list