Skip to content

Commit 9ab17e9

Browse files
committed
[NFC][TableGen[ Adopt CodeGenHelpers in SDNodeInfoEmitter
1 parent 67ce4ab commit 9ab17e9

File tree

6 files changed

+7
-26
lines changed

6 files changed

+7
-26
lines changed

llvm/test/TableGen/SDNodeInfoEmitter/advanced.td

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,13 @@ def my_node_3 : SDNode<
4747
>;
4848

4949
// CHECK: namespace llvm::MyTargetISD {
50-
// CHECK-EMPTY:
5150
// CHECK-NEXT: enum GenNodeType : unsigned {
5251
// CHECK-NEXT: NODE_1 = ISD::BUILTIN_OP_END,
5352
// CHECK-NEXT: NODE_2,
5453
// CHECK-NEXT: NODE_3,
5554
// CHECK-NEXT: };
5655
// CHECK-EMPTY:
5756
// CHECK-NEXT: static constexpr unsigned GENERATED_OPCODE_END = NODE_3 + 1;
58-
// CHECK-EMPTY:
5957
// CHECK-NEXT: } // namespace llvm::MyTargetISD
6058

6159
// CHECK: static constexpr char MyTargetSDNodeNamesStorage[] =

llvm/test/TableGen/SDNodeInfoEmitter/ambiguous-constraints-2.td

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ def my_node_2a : SDNode<"MyTargetISD::NODE_2", SDTypeProfile<1, 0, [SDTCisVT<0,
1010
def my_node_2b : SDNode<"MyTargetISD::NODE_2", SDTypeProfile<1, 0, [SDTCisVT<0, untyped>]>>;
1111

1212
// CHECK: namespace llvm::MyTargetISD {
13-
// CHECK-EMPTY:
1413
// CHECK-NEXT: enum GenNodeType : unsigned {
1514
// CHECK-NEXT: NODE_1 = ISD::BUILTIN_OP_END,
1615
// CHECK-NEXT: NODE_2,
1716
// CHECK-NEXT: };
1817
// CHECK-EMPTY:
1918
// CHECK-NEXT: static constexpr unsigned GENERATED_OPCODE_END = NODE_2 + 1;
20-
// CHECK-EMPTY:
2119
// CHECK-NEXT: } // namespace llvm::MyTargetISD
2220

2321
// CHECK: static constexpr char MyTargetSDNodeNamesStorage[] =

llvm/test/TableGen/SDNodeInfoEmitter/namespace.td

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ def node_1 : SDNode<"MyTargetISD::NODE", SDTypeProfile<1, 0, [SDTCisVT<0, i1>]>>
1414
def node_2 : SDNode<"MyCustomISD::NODE", SDTypeProfile<0, 1, [SDTCisVT<0, i2>]>>;
1515

1616
// EMPTY: namespace llvm::EmptyISD {
17-
// EMPTY-EMPTY:
1817
// EMPTY-NEXT: static constexpr unsigned GENERATED_OPCODE_END = ISD::BUILTIN_OP_END;
19-
// EMPTY-EMPTY:
2018
// EMPTY-NEXT: } // namespace llvm::EmptyISD
2119

2220
// EMPTY: static constexpr char MyTargetSDNodeNamesStorage[] =
@@ -35,13 +33,11 @@ def node_2 : SDNode<"MyCustomISD::NODE", SDTypeProfile<0, 1, [SDTCisVT<0, i2>]>>
3533
// EMPTY-NEXT: MyTargetSDNodeNames, MyTargetSDTypeConstraints);
3634

3735
// COMMON: namespace llvm::[[NS]] {
38-
// COMMON-EMPTY:
3936
// COMMON-NEXT: enum GenNodeType : unsigned {
4037
// COMMON-NEXT: NODE = ISD::BUILTIN_OP_END,
4138
// COMMON-NEXT: };
4239
// COMMON-EMPTY:
4340
// COMMON-NEXT: static constexpr unsigned GENERATED_OPCODE_END = NODE + 1;
44-
// COMMON-EMPTY:
4541
// COMMON-NEXT: } // namespace llvm::[[NS]]
4642

4743
// COMMON: static constexpr char MyTargetSDNodeNamesStorage[] =

llvm/test/TableGen/SDNodeInfoEmitter/no-nodes.td

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ def MyTarget : Target;
88
// CHECK-NEXT: #undef GET_SDNODE_ENUM
99
// CHECK-EMPTY:
1010
// CHECK-NEXT: namespace llvm::MyTargetISD {
11-
// CHECK-EMPTY:
1211
// CHECK-NEXT: static constexpr unsigned GENERATED_OPCODE_END = ISD::BUILTIN_OP_END;
13-
// CHECK-EMPTY:
1412
// CHECK-NEXT: } // namespace llvm::MyTargetISD
1513
// CHECK-EMPTY:
1614
// CHECK-NEXT: #endif // GET_SDNODE_ENUM

llvm/test/TableGen/SDNodeInfoEmitter/trivial-node.td

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@ def MyTarget : Target;
77
def my_noop : SDNode<"MyTargetISD::NOOP", SDTypeProfile<0, 0, []>>;
88

99
// CHECK: namespace llvm::MyTargetISD {
10-
// CHECK-EMPTY:
1110
// CHECK-NEXT: enum GenNodeType : unsigned {
1211
// CHECK-NEXT: NOOP = ISD::BUILTIN_OP_END,
1312
// CHECK-NEXT: };
1413
// CHECK-EMPTY:
1514
// CHECK-NEXT: static constexpr unsigned GENERATED_OPCODE_END = NOOP + 1;
16-
// CHECK-EMPTY:
1715
// CHECK-NEXT: } // namespace llvm::MyTargetISD
1816

1917
// CHECK: static constexpr char MyTargetSDNodeNamesStorage[] =

llvm/utils/TableGen/SDNodeInfoEmitter.cpp

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include "Common/CodeGenDAGPatterns.h" // For SDNodeInfo.
1111
#include "llvm/Support/CommandLine.h"
1212
#include "llvm/Support/FormatVariadic.h"
13+
#include "llvm/TableGen/CodeGenHelpers.h"
1314
#include "llvm/TableGen/Error.h"
1415
#include "llvm/TableGen/StringToOffsetTable.h"
1516
#include "llvm/TableGen/TableGenBackend.h"
@@ -129,9 +130,8 @@ SDNodeInfoEmitter::SDNodeInfoEmitter(const RecordKeeper &RK)
129130
}
130131

131132
void SDNodeInfoEmitter::emitEnum(raw_ostream &OS) const {
132-
OS << "#ifdef GET_SDNODE_ENUM\n";
133-
OS << "#undef GET_SDNODE_ENUM\n\n";
134-
OS << "namespace llvm::" << TargetSDNodeNamespace << " {\n\n";
133+
IfDefEmitter IfDef(OS, "GET_SDNODE_ENUM");
134+
NamespaceEmitter NS(OS, "llvm::" + TargetSDNodeNamespace);
135135

136136
if (!NodesByName.empty()) {
137137
StringRef FirstName = NodesByName.begin()->first;
@@ -145,14 +145,11 @@ void SDNodeInfoEmitter::emitEnum(raw_ostream &OS) const {
145145

146146
OS << "};\n\n";
147147
OS << "static constexpr unsigned GENERATED_OPCODE_END = " << LastName
148-
<< " + 1;\n\n";
148+
<< " + 1;\n";
149149
} else {
150150
OS << "static constexpr unsigned GENERATED_OPCODE_END = "
151-
"ISD::BUILTIN_OP_END;\n\n";
151+
"ISD::BUILTIN_OP_END;\n";
152152
}
153-
154-
OS << "} // namespace llvm::" << TargetSDNodeNamespace << "\n\n";
155-
OS << "#endif // GET_SDNODE_ENUM\n\n";
156153
}
157154

158155
std::vector<unsigned> SDNodeInfoEmitter::emitNodeNames(raw_ostream &OS) const {
@@ -324,9 +321,8 @@ static void emitDesc(raw_ostream &OS, StringRef EnumName,
324321
void SDNodeInfoEmitter::emitDescs(raw_ostream &OS) const {
325322
StringRef TargetName = Target.getName();
326323

327-
OS << "#ifdef GET_SDNODE_DESC\n";
328-
OS << "#undef GET_SDNODE_DESC\n\n";
329-
OS << "namespace llvm {\n";
324+
IfDefEmitter IfDef(OS, "GET_SDNODE_DESC");
325+
NamespaceEmitter LlvmNs(OS, "llvm");
330326

331327
std::vector<unsigned> NameOffsets = emitNodeNames(OS);
332328
std::vector<std::pair<unsigned, unsigned>> ConstraintOffsetsAndCounts =
@@ -345,9 +341,6 @@ void SDNodeInfoEmitter::emitDescs(raw_ostream &OS) const {
345341
" /*NumOpcodes=*/{1}, {0}SDNodeDescs,\n"
346342
" {0}SDNodeNames, {0}SDTypeConstraints);\n\n",
347343
TargetName, NodesByName.size());
348-
349-
OS << "} // namespace llvm\n\n";
350-
OS << "#endif // GET_SDNODE_DESC\n\n";
351344
}
352345

353346
void SDNodeInfoEmitter::run(raw_ostream &OS) const {

0 commit comments

Comments
 (0)