Skip to content

Commit 6324493

Browse files
authored
[TableGen] Make more use of findSubRegIdx. NFCI. (#142996)
Outside of CodeGenRegisters itself, we only want to find existing SubRegIdxs, not create new ones. Change findSubRegIdx to assert and use it consistently for this purpose.
1 parent 19e2fd5 commit 6324493

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

llvm/utils/TableGen/Common/CodeGenRegisters.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1333,7 +1333,7 @@ CodeGenSubRegIndex *CodeGenRegBank::getSubRegIdx(const Record *Def) {
13331333

13341334
const CodeGenSubRegIndex *
13351335
CodeGenRegBank::findSubRegIdx(const Record *Def) const {
1336-
return Def2SubRegIdx.lookup(Def);
1336+
return Def2SubRegIdx.at(Def);
13371337
}
13381338

13391339
CodeGenRegister *CodeGenRegBank::getReg(const Record *Def) {

llvm/utils/TableGen/DAGISelMatcherGen.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,6 @@ void MatcherGen::EmitResultLeafAsOperand(const TreePatternNode &N,
730730
// 7 bit and we cannot use StringInteger.
731731
if (RB.getSubRegIndices().size() > 127) {
732732
const CodeGenSubRegIndex *I = RB.findSubRegIdx(Def);
733-
assert(I && "Cannot find subreg index by name!");
734733
if (I->EnumValue > 127) {
735734
AddMatcher(new EmitIntegerMatcher(I->EnumValue, MVT::i32,
736735
NextRecordedOperandNo));

llvm/utils/TableGen/GlobalISelEmitter.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,7 +1333,7 @@ Error GlobalISelEmitter::importLeafNodeRenderer(
13331333
}
13341334

13351335
if (R->isSubClassOf("SubRegIndex")) {
1336-
const CodeGenSubRegIndex *SubRegIndex = CGRegs.getSubRegIdx(R);
1336+
const CodeGenSubRegIndex *SubRegIndex = CGRegs.findSubRegIdx(R);
13371337
MIBuilder.addRenderer<ImmRenderer>(SubRegIndex->EnumValue);
13381338
return Error::success();
13391339
}
@@ -1606,7 +1606,8 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderers(
16061606
if (!SubRegInit)
16071607
return failedImport("EXTRACT_SUBREG child #1 is not a subreg index");
16081608

1609-
CodeGenSubRegIndex *SubIdx = CGRegs.getSubRegIdx(SubRegInit->getDef());
1609+
const CodeGenSubRegIndex *SubIdx =
1610+
CGRegs.findSubRegIdx(SubRegInit->getDef());
16101611
const TreePatternNode &ValChild = Dst.getChild(0);
16111612
if (!ValChild.isLeaf()) {
16121613
// We really have to handle the source instruction, and then insert a
@@ -1675,7 +1676,8 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderers(
16751676

16761677
if (const DefInit *SubRegInit =
16771678
dyn_cast<DefInit>(SubRegChild.getLeafValue())) {
1678-
CodeGenSubRegIndex *SubIdx = CGRegs.getSubRegIdx(SubRegInit->getDef());
1679+
const CodeGenSubRegIndex *SubIdx =
1680+
CGRegs.findSubRegIdx(SubRegInit->getDef());
16791681

16801682
if (Error Err = importNodeRenderer(M, DstMIBuilder, ValChild, InsertPt))
16811683
return Err;
@@ -2004,7 +2006,7 @@ const CodeGenRegisterClass *GlobalISelEmitter::inferSuperRegisterClass(
20042006
const DefInit *SubRegInit = dyn_cast<DefInit>(SubRegIdxNode.getLeafValue());
20052007
if (!SubRegInit)
20062008
return nullptr;
2007-
const CodeGenSubRegIndex *SubIdx = CGRegs.getSubRegIdx(SubRegInit->getDef());
2009+
const CodeGenSubRegIndex *SubIdx = CGRegs.findSubRegIdx(SubRegInit->getDef());
20082010

20092011
// Use the information we found above to find a minimal register class which
20102012
// supports the subregister and type we want.
@@ -2034,7 +2036,7 @@ const CodeGenSubRegIndex *GlobalISelEmitter::inferSubRegIndexForNode(
20342036
const DefInit *SubRegInit = dyn_cast<DefInit>(SubRegIdxNode.getLeafValue());
20352037
if (!SubRegInit)
20362038
return nullptr;
2037-
return CGRegs.getSubRegIdx(SubRegInit->getDef());
2039+
return CGRegs.findSubRegIdx(SubRegInit->getDef());
20382040
}
20392041

20402042
Expected<RuleMatcher> GlobalISelEmitter::runOnPattern(const PatternToMatch &P) {

0 commit comments

Comments
 (0)