Skip to content

Commit d138e05

Browse files
committed
[TableGen] Make more use of findSubRegIdx. NFCI.
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 a12f4f0 commit d138e05

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)