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
131132void 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
158155std::vector<unsigned > SDNodeInfoEmitter::emitNodeNames (raw_ostream &OS) const {
@@ -324,9 +321,8 @@ static void emitDesc(raw_ostream &OS, StringRef EnumName,
324321void 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 NS (OS, " llvm" );
330326
331327 std::vector<unsigned > NameOffsets = emitNodeNames (OS);
332328 std::vector<std::pair<unsigned , unsigned >> ConstraintOffsetsAndCounts =
@@ -343,11 +339,8 @@ void SDNodeInfoEmitter::emitDescs(raw_ostream &OS) const {
343339
344340 OS << formatv (" static const SDNodeInfo {0}GenSDNodeInfo(\n "
345341 " /*NumOpcodes=*/{1}, {0}SDNodeDescs,\n "
346- " {0}SDNodeNames, {0}SDTypeConstraints);\n\n " ,
342+ " {0}SDNodeNames, {0}SDTypeConstraints);\n " ,
347343 TargetName, NodesByName.size ());
348-
349- OS << " } // namespace llvm\n\n " ;
350- OS << " #endif // GET_SDNODE_DESC\n\n " ;
351344}
352345
353346void SDNodeInfoEmitter::run (raw_ostream &OS) const {
0 commit comments