Skip to content

Commit a0011c3

Browse files
committed
[TableGen] Report a better error when an InstAlias does not use a RegClass
Also fix the missing space in the error message. I notice while changing RISC-V's loads and stores to use RegClassByHwMode and got a non-descriptive error when tablegen was parsing the InstAliases.
1 parent e2a8c10 commit a0011c3

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

llvm/utils/TableGen/Common/CodeGenInstAlias.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,10 @@ static Expected<ResultOperand> matchSimpleOperand(const Init *Arg,
5555
// Match 'RegClass:$name' or 'RegOp:$name'.
5656
if (const Record *ArgRC = T.getInitValueAsRegClassLike(Arg)) {
5757
if (ArgRC->isSubClassOf("RegisterClass")) {
58-
if (!T.getRegisterClass(OpRC).hasSubClass(&T.getRegisterClass(ArgRC)))
58+
if (!OpRC->isSubClassOf("RegisterClass") ||
59+
!T.getRegisterClass(OpRC).hasSubClass(&T.getRegisterClass(ArgRC)))
5960
return createStringError(
60-
"argument register class" + ArgRC->getName() +
61+
"argument register class " + ArgRC->getName() +
6162
" is not a subclass of operand register class " +
6263
OpRC->getName());
6364
if (!ArgName)

0 commit comments

Comments
 (0)