@@ -1849,21 +1849,21 @@ void CodeGenSchedModels::collectProcResources() {
1849
1849
// Add resources separately defined by each subtarget.
1850
1850
for (const Record *WR : Records.getAllDerivedDefinitions (" WriteRes" )) {
1851
1851
const Record *ModelDef = WR->getValueAsDef (" SchedModel" );
1852
- addWriteRes (WR, getProcModel (ModelDef). Index );
1852
+ addWriteRes (WR, getProcModel (ModelDef));
1853
1853
}
1854
1854
for (const Record *SWR : Records.getAllDerivedDefinitions (" SchedWriteRes" )) {
1855
1855
const Record *ModelDef = SWR->getValueAsDef (" SchedModel" );
1856
- addWriteRes (SWR, getProcModel (ModelDef). Index );
1856
+ addWriteRes (SWR, getProcModel (ModelDef));
1857
1857
}
1858
1858
for (const Record *RA : Records.getAllDerivedDefinitions (" ReadAdvance" )) {
1859
1859
const Record *ModelDef = RA->getValueAsDef (" SchedModel" );
1860
- addReadAdvance (RA, getProcModel (ModelDef). Index );
1860
+ addReadAdvance (RA, getProcModel (ModelDef));
1861
1861
}
1862
1862
for (const Record *SRA :
1863
1863
Records.getAllDerivedDefinitions (" SchedReadAdvance" )) {
1864
1864
if (SRA->getValueInit (" SchedModel" )->isComplete ()) {
1865
1865
const Record *ModelDef = SRA->getValueAsDef (" SchedModel" );
1866
- addReadAdvance (SRA, getProcModel (ModelDef). Index );
1866
+ addReadAdvance (SRA, getProcModel (ModelDef));
1867
1867
}
1868
1868
}
1869
1869
// Add ProcResGroups that are defined within this processor model, which may
@@ -2005,10 +2005,10 @@ void CodeGenSchedModels::collectRWResources(unsigned RWIdx, bool IsRead,
2005
2005
if (SchedRW.TheDef ) {
2006
2006
if (!IsRead && SchedRW.TheDef ->isSubClassOf (" SchedWriteRes" )) {
2007
2007
for (unsigned Idx : ProcIndices)
2008
- addWriteRes (SchedRW.TheDef , Idx);
2008
+ addWriteRes (SchedRW.TheDef , ProcModels[ Idx] );
2009
2009
} else if (IsRead && SchedRW.TheDef ->isSubClassOf (" SchedReadAdvance" )) {
2010
2010
for (unsigned Idx : ProcIndices)
2011
- addReadAdvance (SchedRW.TheDef , Idx);
2011
+ addReadAdvance (SchedRW.TheDef , ProcModels[ Idx] );
2012
2012
}
2013
2013
}
2014
2014
for (auto *Alias : SchedRW.Aliases ) {
@@ -2104,16 +2104,14 @@ void CodeGenSchedModels::addProcResource(const Record *ProcResKind,
2104
2104
2105
2105
// Add resources for a SchedWrite to this processor if they don't exist.
2106
2106
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 ;
2111
2109
if (is_contained (WRDefs, ProcWriteResDef))
2112
2110
return ;
2113
2111
WRDefs.push_back (ProcWriteResDef);
2114
2112
2115
2113
if (ProcWriteResDef->isSubClassOf (" WriteRes" )) {
2116
- auto &WRMap = ProcModels[PIdx] .WriteResMap ;
2114
+ auto &WRMap = PM .WriteResMap ;
2117
2115
const Record *WRDef = ProcWriteResDef->getValueAsDef (" WriteType" );
2118
2116
if (!WRMap.try_emplace (WRDef, ProcWriteResDef).second )
2119
2117
PrintFatalError (ProcWriteResDef->getLoc (),
@@ -2123,13 +2121,13 @@ void CodeGenSchedModels::addWriteRes(const Record *ProcWriteResDef,
2123
2121
// Visit ProcResourceKinds referenced by the newly discovered WriteRes.
2124
2122
for (const Record *ProcResDef :
2125
2123
ProcWriteResDef->getValueAsListOfDefs (" ProcResources" )) {
2126
- addProcResource (ProcResDef, ProcModels[PIdx] , ProcWriteResDef->getLoc ());
2124
+ addProcResource (ProcResDef, PM , ProcWriteResDef->getLoc ());
2127
2125
}
2128
2126
}
2129
2127
2130
2128
// Add resources for a ReadAdvance to this processor if they don't exist.
2131
2129
void CodeGenSchedModels::addReadAdvance (const Record *ProcReadAdvanceDef,
2132
- unsigned PIdx ) {
2130
+ CodeGenProcModel &PM ) {
2133
2131
for (const Record *ValidWrite :
2134
2132
ProcReadAdvanceDef->getValueAsListOfDefs (" ValidWrites" ))
2135
2133
if (getSchedRWIdx (ValidWrite, /* IsRead=*/ false ) == 0 )
@@ -2139,13 +2137,13 @@ void CodeGenSchedModels::addReadAdvance(const Record *ProcReadAdvanceDef,
2139
2137
" any instruction (" +
2140
2138
ValidWrite->getName () + " )" );
2141
2139
2142
- ConstRecVec &RADefs = ProcModels[PIdx] .ReadAdvanceDefs ;
2140
+ ConstRecVec &RADefs = PM .ReadAdvanceDefs ;
2143
2141
if (is_contained (RADefs, ProcReadAdvanceDef))
2144
2142
return ;
2145
2143
RADefs.push_back (ProcReadAdvanceDef);
2146
2144
2147
2145
if (ProcReadAdvanceDef->isSubClassOf (" ReadAdvance" )) {
2148
- auto &RAMap = ProcModels[PIdx] .ReadAdvanceMap ;
2146
+ auto &RAMap = PM .ReadAdvanceMap ;
2149
2147
const Record *RADef = ProcReadAdvanceDef->getValueAsDef (" ReadType" );
2150
2148
if (!RAMap.try_emplace (RADef, ProcReadAdvanceDef).second )
2151
2149
PrintFatalError (ProcReadAdvanceDef->getLoc (),
0 commit comments