Skip to content

Commit 7275817

Browse files
authored
[TableGen] Improve generated comments for RegClassByHwMode tables
Adding a comment for which RegClassByHwMode the entry refers to is helpful when staring at this generated table. Pull Request: #171716
1 parent f0bec9e commit 7275817

File tree

3 files changed

+31
-28
lines changed

3 files changed

+31
-28
lines changed

llvm/test/TableGen/RegClassByHwMode.td

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,24 @@ include "Common/RegClassByHwModeCommon.td"
4242

4343
// INSTRINFO: extern const int16_t MyTargetRegClassByHwModeTables[4][3] = {
4444
// INSTRINFO-NEXT: { // DefaultMode
45-
// INSTRINFO-NEXT: MyTarget::PtrRegs32RegClassID,
46-
// INSTRINFO-NEXT: MyTarget::XRegsRegClassID,
47-
// INSTRINFO-NEXT: MyTarget::YRegsRegClassID,
45+
// INSTRINFO-NEXT: MyTarget::PtrRegs32RegClassID, // MyPtrRC
46+
// INSTRINFO-NEXT: MyTarget::XRegsRegClassID, // XRegs_EvenIfRequired
47+
// INSTRINFO-NEXT: MyTarget::YRegsRegClassID, // YRegs_EvenIfRequired
4848
// INSTRINFO-NEXT: },
4949
// INSTRINFO-NEXT: { // EvenMode
50-
// INSTRINFO-NEXT: -1, // Missing mode entry
51-
// INSTRINFO-NEXT: MyTarget::XRegs_EvenRegClassID,
52-
// INSTRINFO-NEXT: MyTarget::YRegs_EvenRegClassID,
50+
// INSTRINFO-NEXT: -1, // Missing mode entry for MyPtrRC
51+
// INSTRINFO-NEXT: MyTarget::XRegs_EvenRegClassID, // XRegs_EvenIfRequired
52+
// INSTRINFO-NEXT: MyTarget::YRegs_EvenRegClassID, // YRegs_EvenIfRequired
5353
// INSTRINFO-NEXT: },
5454
// INSTRINFO-NEXT: { // OddMode
55-
// INSTRINFO-NEXT: -1, // Missing mode entry
56-
// INSTRINFO-NEXT: MyTarget::XRegs_OddRegClassID,
57-
// INSTRINFO-NEXT: -1, // Missing mode entry
55+
// INSTRINFO-NEXT: -1, // Missing mode entry for MyPtrRC
56+
// INSTRINFO-NEXT: MyTarget::XRegs_OddRegClassID, // XRegs_EvenIfRequired
57+
// INSTRINFO-NEXT: -1, // Missing mode entry for YRegs_EvenIfRequired
5858
// INSTRINFO-NEXT: },
5959
// INSTRINFO-NEXT: { // Ptr64
60-
// INSTRINFO-NEXT: MyTarget::PtrRegs64RegClassID,
61-
// INSTRINFO-NEXT: -1, // Missing mode entry
62-
// INSTRINFO-NEXT: -1, // Missing mode entry
60+
// INSTRINFO-NEXT: MyTarget::PtrRegs64RegClassID, // MyPtrRC
61+
// INSTRINFO-NEXT: -1, // Missing mode entry for XRegs_EvenIfRequired
62+
// INSTRINFO-NEXT: -1, // Missing mode entry for YRegs_EvenIfRequired
6363
// INSTRINFO-NEXT: },
6464
// INSTRINFO-NEXT: };
6565

@@ -92,24 +92,24 @@ include "Common/RegClassByHwModeCommon.td"
9292
// ASMMATCHER: if (Operand.isReg() && Kind > MCK_LAST_REGISTER && Kind <= MCK_LAST_REGCLASS_BY_HWMODE) {
9393
// ASMMATCHER-NEXT: static constexpr MatchClassKind RegClassByHwModeMatchTable[4][3] = {
9494
// ASMMATCHER-NEXT: { // DefaultMode
95-
// ASMMATCHER-NEXT: MCK_PtrRegs32,
96-
// ASMMATCHER-NEXT: MCK_XRegs,
97-
// ASMMATCHER-NEXT: MCK_YRegs,
95+
// ASMMATCHER-NEXT: MCK_PtrRegs32, // MyPtrRC
96+
// ASMMATCHER-NEXT: MCK_XRegs, // XRegs_EvenIfRequired
97+
// ASMMATCHER-NEXT: MCK_YRegs, // YRegs_EvenIfRequired
9898
// ASMMATCHER-NEXT: },
9999
// ASMMATCHER-NEXT: { // EvenMode
100-
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode
101-
// ASMMATCHER-NEXT: MCK_XRegs_Even,
102-
// ASMMATCHER-NEXT: MCK_YRegs_Even,
100+
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode entry for MyPtrRC
101+
// ASMMATCHER-NEXT: MCK_XRegs_Even, // XRegs_EvenIfRequired
102+
// ASMMATCHER-NEXT: MCK_YRegs_Even, // YRegs_EvenIfRequired
103103
// ASMMATCHER-NEXT: },
104104
// ASMMATCHER-NEXT: { // OddMode
105-
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode
106-
// ASMMATCHER-NEXT: MCK_XRegs_Odd,
107-
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode
105+
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode entry for MyPtrRC
106+
// ASMMATCHER-NEXT: MCK_XRegs_Odd, // XRegs_EvenIfRequired
107+
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode entry for YRegs_EvenIfRequired
108108
// ASMMATCHER-NEXT: },
109109
// ASMMATCHER-NEXT: { // Ptr64
110-
// ASMMATCHER-NEXT: MCK_PtrRegs64,
111-
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode
112-
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode
110+
// ASMMATCHER-NEXT: MCK_PtrRegs64, // MyPtrRC
111+
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode entry for XRegs_EvenIfRequired
112+
// ASMMATCHER-NEXT: InvalidMatchClass, // Missing mode entry for YRegs_EvenIfRequired
113113
// ASMMATCHER-NEXT: },
114114
// ASMMATCHER-NEXT: };
115115
// ASMMATCHER-EMPTY:

llvm/utils/TableGen/AsmMatcherEmitter.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2581,13 +2581,14 @@ static void emitValidateOperandClass(const CodeGenTarget &Target,
25812581
});
25822582

25832583
if (FoundMode == ModeSelect.Items.end()) {
2584-
OS << indent(8) << "InvalidMatchClass, // Missing mode\n";
2584+
OS << indent(8) << "InvalidMatchClass, // Missing mode entry for "
2585+
<< Class->getName() << "\n";
25852586
} else {
25862587
const CodeGenRegisterClass *RegClass =
25872588
RegBank.getRegClass(FoundMode->second);
25882589
const ClassInfo *CI =
25892590
Info.RegisterClassClasses.at(RegClass->getDef());
2590-
OS << indent(8) << CI->Name << ",\n";
2591+
OS << indent(8) << CI->Name << ", // " << Class->getName() << "\n";
25912592
}
25922593
}
25932594

llvm/utils/TableGen/InstrInfoEmitter.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,11 +1116,13 @@ void InstrInfoEmitter::run(raw_ostream &OS) {
11161116
if (FoundMode == ModeSelect.Items.end()) {
11171117
// If a RegClassByHwMode doesn't have an entry corresponding to a
11181118
// mode, pad with default register class.
1119-
OS << indent(4) << "-1, // Missing mode entry\n";
1119+
OS << indent(4) << "-1, // Missing mode entry for "
1120+
<< Class->getName() << "\n";
11201121
} else {
11211122
const CodeGenRegisterClass *RegClass =
11221123
RegBank.getRegClass(FoundMode->second);
1123-
OS << indent(4) << RegClass->getQualifiedIdName() << ",\n";
1124+
OS << indent(4) << RegClass->getQualifiedIdName() << ", // "
1125+
<< Class->getName() << "\n";
11241126
}
11251127
}
11261128

0 commit comments

Comments
 (0)