|
25 | 25 | #include "llvm/ADT/SmallVector.h" |
26 | 26 | #include "llvm/ADT/StringExtras.h" |
27 | 27 | #include "llvm/Support/Casting.h" |
| 28 | +#include "llvm/Support/Format.h" |
| 29 | +#include "llvm/Support/SourceMgr.h" |
28 | 30 | #include "llvm/Support/raw_ostream.h" |
29 | 31 | #include "llvm/TableGen/Error.h" |
30 | 32 | #include "llvm/TableGen/Record.h" |
@@ -1302,18 +1304,28 @@ void InstrInfoEmitter::emitEnums( |
1302 | 1304 |
|
1303 | 1305 | OS << "namespace llvm::" << Namespace << " {\n"; |
1304 | 1306 |
|
| 1307 | + auto II = llvm::max_element( |
| 1308 | + NumberedInstructions, |
| 1309 | + [](const CodeGenInstruction *InstA, const CodeGenInstruction *InstB) { |
| 1310 | + return InstA->getName().size() < InstB->getName().size(); |
| 1311 | + }); |
| 1312 | + size_t MaxNameSize = (*II)->getName().size(); |
| 1313 | + |
1305 | 1314 | OS << " enum {\n"; |
1306 | | - for (const CodeGenInstruction *Inst : NumberedInstructions) |
1307 | | - OS << " " << Inst->TheDef->getName() |
1308 | | - << "\t= " << Target.getInstrIntValue(Inst->TheDef) << ",\n"; |
| 1315 | + for (const CodeGenInstruction *Inst : NumberedInstructions) { |
| 1316 | + OS << " " << left_justify(Inst->TheDef->getName(), MaxNameSize) << " = " |
| 1317 | + << Target.getInstrIntValue(Inst->TheDef) << ", // " |
| 1318 | + << SrcMgr.getFormattedLocationNoOffset(Inst->TheDef->getLoc().front()) |
| 1319 | + << '\n'; |
| 1320 | + } |
1309 | 1321 | OS << " INSTRUCTION_LIST_END = " << NumberedInstructions.size() << '\n'; |
1310 | | - OS << " };\n\n"; |
| 1322 | + OS << " };\n"; |
1311 | 1323 | OS << "} // end namespace llvm::" << Namespace << '\n'; |
1312 | 1324 | OS << "#endif // GET_INSTRINFO_ENUM\n\n"; |
1313 | 1325 |
|
1314 | 1326 | OS << "#ifdef GET_INSTRINFO_SCHED_ENUM\n"; |
1315 | 1327 | OS << "#undef GET_INSTRINFO_SCHED_ENUM\n"; |
1316 | | - OS << "namespace llvm::" << Namespace << "::Sched {\n\n"; |
| 1328 | + OS << "namespace llvm::" << Namespace << "::Sched {\n"; |
1317 | 1329 | OS << " enum {\n"; |
1318 | 1330 | auto ExplictClasses = SchedModels.explicitSchedClasses(); |
1319 | 1331 | for (const auto &[Idx, Class] : enumerate(ExplictClasses)) |
|
0 commit comments