@@ -1966,7 +1966,7 @@ bool RewriteScheduleStage::initHeuristics(
19661966 continue ;
19671967
19681968 int ReplacementOp = AMDGPU::getMFMASrcCVDstAGPROp (MI.getOpcode ());
1969- assert (ReplacementOp != -1 )
1969+ assert (ReplacementOp != -1 );
19701970
19711971 RewriteCands.push_back ({&MI, MI.getOpcode ()});
19721972 MI.setDesc (TII->get (ReplacementOp));
@@ -2256,10 +2256,10 @@ bool RewriteScheduleStage::rewrite(
22562256 // Do not create redundant copies.
22572257 if (ReachingDefCopyMap[Src2Reg].insert (RD).second ) {
22582258 MachineInstrBuilder VGPRCopy =
2259- BuildMIAfter (*RD->getParent (), RD->getIterator (),
2260- RD->getDebugLoc (), TII->get (TargetOpcode::COPY))
2259+ BuildMI (DAG.MF , RD->getDebugLoc (), TII->get (TargetOpcode::COPY))
22612260 .addDef (MappedReg, 0 , 0 )
2262- .addUse (Src2Reg, 0 , 0 );
2261+ .addUse (Src2Reg, 0 , 0 )
2262+ .insertAfter (RD);
22632263 DAG.LIS ->InsertMachineInstrInMaps (*VGPRCopy);
22642264
22652265 // If this reaching def was the last MI in the region, update the
@@ -2338,10 +2338,10 @@ bool RewriteScheduleStage::rewrite(
23382338 // Do not create reundant copies.
23392339 if (ReachingDefCopyMap[DstReg].insert (RD).second ) {
23402340 MachineInstrBuilder VGPRCopy =
2341- BuildMIAfter (*RD->getParent (), RD->getIterator (),
2342- RD->getDebugLoc (), TII->get (TargetOpcode::COPY))
2341+ BuildMI (DAG.MF , RD->getDebugLoc (), TII->get (TargetOpcode::COPY))
23432342 .addDef (MappedReg, 0 , 0 )
2344- .addUse (DstReg, 0 , 0 );
2343+ .addUse (DstReg, 0 , 0 )
2344+ .insertAfter (RD);
23452345 DAG.LIS ->InsertMachineInstrInMaps (*VGPRCopy);
23462346
23472347 // If this reaching def was the last MI in the region, update the
@@ -2418,10 +2418,10 @@ bool RewriteScheduleStage::rewrite(
24182418
24192419 // If this UseInst was the first MI in the region, update the region
24202420 // boundaries.
2421- if (LastMIToRegion .contains (UseInst)) {
2421+ if (FirstMIToRegion .contains (UseInst)) {
24222422 unsigned UpdateRegion = FirstMIToRegion[UseInst];
24232423 DAG.Regions [UpdateRegion].first = VGPRCopy;
2424- LastMIToRegion .erase (UseInst);
2424+ FirstMIToRegion .erase (UseInst);
24252425 }
24262426
24272427 // Replace the operand for all users.
@@ -2469,6 +2469,8 @@ bool RewriteScheduleStage::rewrite(
24692469 for (unsigned Region = 0 ; Region < DAG.Regions .size (); Region++)
24702470 DAG.LiveIns [Region] = LiveInUpdater.getLiveRegsForRegionIdx (Region);
24712471
2472+ DAG.Pressure [RegionIdx] = DAG.getRealRegPressure (RegionIdx);
2473+
24722474 return true ;
24732475}
24742476
0 commit comments