@@ -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.
21062106void 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.
21312129void 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 (),
0 commit comments