Skip to content

Commit 8207997

Browse files
committed
Use CodeGenTarget::getInitValueAsRegClass in CodeGenInstAlias
1 parent d1f9277 commit 8207997

File tree

1 file changed

+6
-21
lines changed

1 file changed

+6
-21
lines changed

llvm/utils/TableGen/Common/CodeGenInstAlias.cpp

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,6 @@ unsigned CodeGenInstAlias::ResultOperand::getMINumOperands() const {
3838
return MIOpInfo->getNumArgs();
3939
}
4040

41-
static const Record *getInitValueAsRegClass(const Init *V) {
42-
if (const auto *VDefInit = dyn_cast<DefInit>(V)) {
43-
const Record *R = VDefInit->getDef();
44-
if (R->isSubClassOf("RegisterClass"))
45-
return R;
46-
if (R->isSubClassOf("RegisterOperand"))
47-
return R->getValueAsDef("RegClass");
48-
}
49-
return nullptr;
50-
}
51-
5241
using ResultOperand = CodeGenInstAlias::ResultOperand;
5342

5443
static Expected<ResultOperand> matchSimpleOperand(const Init *Arg,
@@ -64,16 +53,12 @@ static Expected<ResultOperand> matchSimpleOperand(const Init *Arg,
6453
const Record *ArgRec = ArgDef->getDef();
6554

6655
// Match 'RegClass:$name' or 'RegOp:$name'.
67-
if (const Record *ArgRC = getInitValueAsRegClass(Arg)) {
68-
if (OpRC->isSubClassOf("RegisterClass")) {
69-
if (!T.getRegisterClass(OpRC).hasSubClass(&T.getRegisterClass(ArgRC)))
70-
return createStringError(
71-
"argument register class" + ArgRC->getName() +
72-
" is not a subclass of operand register class " +
73-
OpRC->getName());
74-
}
75-
// FIXME: Do some validation on RegClassByHwMode
76-
56+
if (const Record *ArgRC = T.getInitValueAsRegClass(Arg)) {
57+
if (!T.getRegisterClass(OpRC).hasSubClass(&T.getRegisterClass(ArgRC)))
58+
return createStringError(
59+
"argument register class" + ArgRC->getName() +
60+
" is not a subclass of operand register class " +
61+
OpRC->getName());
7762
if (!ArgName)
7863
return createStringError("register class argument must have a name");
7964
return ResultOperand::createRecord(ArgName->getAsUnquotedString(),

0 commit comments

Comments
 (0)