[llvm] 6324493 - [TableGen] Make more use of findSubRegIdx. NFCI. (#142996)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 5 10:07:00 PDT 2025
Author: Jay Foad
Date: 2025-06-05T18:06:57+01:00
New Revision: 63244932fa73f4189b2d90167cf0d4c7dff4b7e9
URL: https://github.com/llvm/llvm-project/commit/63244932fa73f4189b2d90167cf0d4c7dff4b7e9
DIFF: https://github.com/llvm/llvm-project/commit/63244932fa73f4189b2d90167cf0d4c7dff4b7e9.diff
LOG: [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.
Added:
Modified:
llvm/utils/TableGen/Common/CodeGenRegisters.cpp
llvm/utils/TableGen/DAGISelMatcherGen.cpp
llvm/utils/TableGen/GlobalISelEmitter.cpp
Removed:
################################################################################
diff --git a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
index 42142a95fb91c..0e460613f9d39 100644
--- a/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
+++ b/llvm/utils/TableGen/Common/CodeGenRegisters.cpp
@@ -1333,7 +1333,7 @@ CodeGenSubRegIndex *CodeGenRegBank::getSubRegIdx(const Record *Def) {
const CodeGenSubRegIndex *
CodeGenRegBank::findSubRegIdx(const Record *Def) const {
- return Def2SubRegIdx.lookup(Def);
+ return Def2SubRegIdx.at(Def);
}
CodeGenRegister *CodeGenRegBank::getReg(const Record *Def) {
diff --git a/llvm/utils/TableGen/DAGISelMatcherGen.cpp b/llvm/utils/TableGen/DAGISelMatcherGen.cpp
index a1ab06defb456..afdb6879eede4 100644
--- a/llvm/utils/TableGen/DAGISelMatcherGen.cpp
+++ b/llvm/utils/TableGen/DAGISelMatcherGen.cpp
@@ -730,7 +730,6 @@ void MatcherGen::EmitResultLeafAsOperand(const TreePatternNode &N,
// 7 bit and we cannot use StringInteger.
if (RB.getSubRegIndices().size() > 127) {
const CodeGenSubRegIndex *I = RB.findSubRegIdx(Def);
- assert(I && "Cannot find subreg index by name!");
if (I->EnumValue > 127) {
AddMatcher(new EmitIntegerMatcher(I->EnumValue, MVT::i32,
NextRecordedOperandNo));
diff --git a/llvm/utils/TableGen/GlobalISelEmitter.cpp b/llvm/utils/TableGen/GlobalISelEmitter.cpp
index edaf5299efc39..55f60dbfa2dba 100644
--- a/llvm/utils/TableGen/GlobalISelEmitter.cpp
+++ b/llvm/utils/TableGen/GlobalISelEmitter.cpp
@@ -1333,7 +1333,7 @@ Error GlobalISelEmitter::importLeafNodeRenderer(
}
if (R->isSubClassOf("SubRegIndex")) {
- const CodeGenSubRegIndex *SubRegIndex = CGRegs.getSubRegIdx(R);
+ const CodeGenSubRegIndex *SubRegIndex = CGRegs.findSubRegIdx(R);
MIBuilder.addRenderer<ImmRenderer>(SubRegIndex->EnumValue);
return Error::success();
}
@@ -1606,7 +1606,8 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderers(
if (!SubRegInit)
return failedImport("EXTRACT_SUBREG child #1 is not a subreg index");
- CodeGenSubRegIndex *SubIdx = CGRegs.getSubRegIdx(SubRegInit->getDef());
+ const CodeGenSubRegIndex *SubIdx =
+ CGRegs.findSubRegIdx(SubRegInit->getDef());
const TreePatternNode &ValChild = Dst.getChild(0);
if (!ValChild.isLeaf()) {
// We really have to handle the source instruction, and then insert a
@@ -1675,7 +1676,8 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderers(
if (const DefInit *SubRegInit =
dyn_cast<DefInit>(SubRegChild.getLeafValue())) {
- CodeGenSubRegIndex *SubIdx = CGRegs.getSubRegIdx(SubRegInit->getDef());
+ const CodeGenSubRegIndex *SubIdx =
+ CGRegs.findSubRegIdx(SubRegInit->getDef());
if (Error Err = importNodeRenderer(M, DstMIBuilder, ValChild, InsertPt))
return Err;
@@ -2004,7 +2006,7 @@ const CodeGenRegisterClass *GlobalISelEmitter::inferSuperRegisterClass(
const DefInit *SubRegInit = dyn_cast<DefInit>(SubRegIdxNode.getLeafValue());
if (!SubRegInit)
return nullptr;
- const CodeGenSubRegIndex *SubIdx = CGRegs.getSubRegIdx(SubRegInit->getDef());
+ const CodeGenSubRegIndex *SubIdx = CGRegs.findSubRegIdx(SubRegInit->getDef());
// Use the information we found above to find a minimal register class which
// supports the subregister and type we want.
@@ -2034,7 +2036,7 @@ const CodeGenSubRegIndex *GlobalISelEmitter::inferSubRegIndexForNode(
const DefInit *SubRegInit = dyn_cast<DefInit>(SubRegIdxNode.getLeafValue());
if (!SubRegInit)
return nullptr;
- return CGRegs.getSubRegIdx(SubRegInit->getDef());
+ return CGRegs.findSubRegIdx(SubRegInit->getDef());
}
Expected<RuleMatcher> GlobalISelEmitter::runOnPattern(const PatternToMatch &P) {
More information about the llvm-commits
mailing list