Skip to content

Commit 082b148

Browse files
committed
[TableGen] Pass CodeGenProcModel reference instead of index to addWriteRes/addReadAdvance. NFC
2 of the 3 callers of each of these already had a reference they converted to index. Use that reference and make the one caller that only has an index responsible for looking up the reference from it.
1 parent 2f76e2b commit 082b148

File tree

2 files changed

+15
-17
lines changed

2 files changed

+15
-17
lines changed

llvm/utils/TableGen/Common/CodeGenSchedule.cpp

+13-15
Original file line numberDiff line numberDiff line change
@@ -1849,21 +1849,21 @@ void CodeGenSchedModels::collectProcResources() {
18491849
// Add resources separately defined by each subtarget.
18501850
for (const Record *WR : Records.getAllDerivedDefinitions("WriteRes")) {
18511851
const Record *ModelDef = WR->getValueAsDef("SchedModel");
1852-
addWriteRes(WR, getProcModel(ModelDef).Index);
1852+
addWriteRes(WR, getProcModel(ModelDef));
18531853
}
18541854
for (const Record *SWR : Records.getAllDerivedDefinitions("SchedWriteRes")) {
18551855
const Record *ModelDef = SWR->getValueAsDef("SchedModel");
1856-
addWriteRes(SWR, getProcModel(ModelDef).Index);
1856+
addWriteRes(SWR, getProcModel(ModelDef));
18571857
}
18581858
for (const Record *RA : Records.getAllDerivedDefinitions("ReadAdvance")) {
18591859
const Record *ModelDef = RA->getValueAsDef("SchedModel");
1860-
addReadAdvance(RA, getProcModel(ModelDef).Index);
1860+
addReadAdvance(RA, getProcModel(ModelDef));
18611861
}
18621862
for (const Record *SRA :
18631863
Records.getAllDerivedDefinitions("SchedReadAdvance")) {
18641864
if (SRA->getValueInit("SchedModel")->isComplete()) {
18651865
const Record *ModelDef = SRA->getValueAsDef("SchedModel");
1866-
addReadAdvance(SRA, getProcModel(ModelDef).Index);
1866+
addReadAdvance(SRA, getProcModel(ModelDef));
18671867
}
18681868
}
18691869
// Add ProcResGroups that are defined within this processor model, which may
@@ -2005,10 +2005,10 @@ void CodeGenSchedModels::collectRWResources(unsigned RWIdx, bool IsRead,
20052005
if (SchedRW.TheDef) {
20062006
if (!IsRead && SchedRW.TheDef->isSubClassOf("SchedWriteRes")) {
20072007
for (unsigned Idx : ProcIndices)
2008-
addWriteRes(SchedRW.TheDef, Idx);
2008+
addWriteRes(SchedRW.TheDef, ProcModels[Idx]);
20092009
} else if (IsRead && SchedRW.TheDef->isSubClassOf("SchedReadAdvance")) {
20102010
for (unsigned Idx : ProcIndices)
2011-
addReadAdvance(SchedRW.TheDef, Idx);
2011+
addReadAdvance(SchedRW.TheDef, ProcModels[Idx]);
20122012
}
20132013
}
20142014
for (auto *Alias : SchedRW.Aliases) {
@@ -2104,16 +2104,14 @@ void CodeGenSchedModels::addProcResource(const Record *ProcResKind,
21042104

21052105
// Add resources for a SchedWrite to this processor if they don't exist.
21062106
void CodeGenSchedModels::addWriteRes(const Record *ProcWriteResDef,
2107-
unsigned PIdx) {
2108-
assert(PIdx && "don't add resources to an invalid Processor model");
2109-
2110-
ConstRecVec &WRDefs = ProcModels[PIdx].WriteResDefs;
2107+
CodeGenProcModel &PM) {
2108+
ConstRecVec &WRDefs = PM.WriteResDefs;
21112109
if (is_contained(WRDefs, ProcWriteResDef))
21122110
return;
21132111
WRDefs.push_back(ProcWriteResDef);
21142112

21152113
if (ProcWriteResDef->isSubClassOf("WriteRes")) {
2116-
auto &WRMap = ProcModels[PIdx].WriteResMap;
2114+
auto &WRMap = PM.WriteResMap;
21172115
const Record *WRDef = ProcWriteResDef->getValueAsDef("WriteType");
21182116
if (!WRMap.try_emplace(WRDef, ProcWriteResDef).second)
21192117
PrintFatalError(ProcWriteResDef->getLoc(),
@@ -2123,13 +2121,13 @@ void CodeGenSchedModels::addWriteRes(const Record *ProcWriteResDef,
21232121
// Visit ProcResourceKinds referenced by the newly discovered WriteRes.
21242122
for (const Record *ProcResDef :
21252123
ProcWriteResDef->getValueAsListOfDefs("ProcResources")) {
2126-
addProcResource(ProcResDef, ProcModels[PIdx], ProcWriteResDef->getLoc());
2124+
addProcResource(ProcResDef, PM, ProcWriteResDef->getLoc());
21272125
}
21282126
}
21292127

21302128
// Add resources for a ReadAdvance to this processor if they don't exist.
21312129
void CodeGenSchedModels::addReadAdvance(const Record *ProcReadAdvanceDef,
2132-
unsigned PIdx) {
2130+
CodeGenProcModel &PM) {
21332131
for (const Record *ValidWrite :
21342132
ProcReadAdvanceDef->getValueAsListOfDefs("ValidWrites"))
21352133
if (getSchedRWIdx(ValidWrite, /*IsRead=*/false) == 0)
@@ -2139,13 +2137,13 @@ void CodeGenSchedModels::addReadAdvance(const Record *ProcReadAdvanceDef,
21392137
"any instruction (" +
21402138
ValidWrite->getName() + ")");
21412139

2142-
ConstRecVec &RADefs = ProcModels[PIdx].ReadAdvanceDefs;
2140+
ConstRecVec &RADefs = PM.ReadAdvanceDefs;
21432141
if (is_contained(RADefs, ProcReadAdvanceDef))
21442142
return;
21452143
RADefs.push_back(ProcReadAdvanceDef);
21462144

21472145
if (ProcReadAdvanceDef->isSubClassOf("ReadAdvance")) {
2148-
auto &RAMap = ProcModels[PIdx].ReadAdvanceMap;
2146+
auto &RAMap = PM.ReadAdvanceMap;
21492147
const Record *RADef = ProcReadAdvanceDef->getValueAsDef("ReadType");
21502148
if (!RAMap.try_emplace(RADef, ProcReadAdvanceDef).second)
21512149
PrintFatalError(ProcReadAdvanceDef->getLoc(),

llvm/utils/TableGen/Common/CodeGenSchedule.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -653,9 +653,9 @@ class CodeGenSchedModels {
653653
void addProcResource(const Record *ProcResourceKind, CodeGenProcModel &PM,
654654
ArrayRef<SMLoc> Loc);
655655

656-
void addWriteRes(const Record *ProcWriteResDef, unsigned PIdx);
656+
void addWriteRes(const Record *ProcWriteResDef, CodeGenProcModel &PM);
657657

658-
void addReadAdvance(const Record *ProcReadAdvanceDef, unsigned PIdx);
658+
void addReadAdvance(const Record *ProcReadAdvanceDef, CodeGenProcModel &PM);
659659
};
660660

661661
} // namespace llvm

0 commit comments

Comments
 (0)