Skip to content

Commit 4b8764d

Browse files
author
Tony Linthicum
committed
Address PR 149367 review comments
1 parent 08e76dc commit 4b8764d

File tree

2 files changed

+20
-23
lines changed

2 files changed

+20
-23
lines changed

llvm/include/llvm/CodeGen/MachineInstrBuilder.h

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,15 @@ class MachineInstrBuilder {
375375
return *this;
376376
}
377377

378+
/// Inserts the newly-built instruction after the given position in the
379+
/// given MachineBasicBlock.
380+
const MachineInstrBuilder &insertAfter(MachineInstr *MInstr) const {
381+
MachineBasicBlock *MBB = MInstr->getParent();
382+
MachineBasicBlock::iterator I = MInstr->getIterator();
383+
MBB->insertAfter(I, MI);
384+
return *this;
385+
}
386+
378387
bool constrainAllUses(const TargetInstrInfo &TII,
379388
const TargetRegisterInfo &TRI,
380389
const RegisterBankInfo &RBI) const {
@@ -459,20 +468,6 @@ inline MachineInstrBuilder BuildMI(MachineBasicBlock &BB,
459468
return MachineInstrBuilder(MF, MI).copyMIMetadata(MIMD);
460469
}
461470

462-
/// This version of the builder inserts the newly-built instruction after the
463-
/// given position in the given MachineBasicBlock, and does NOT take a
464-
/// destination register.
465-
inline MachineInstrBuilder BuildMIAfter(MachineBasicBlock &BB,
466-
MachineBasicBlock::iterator I,
467-
const MIMetadata &MIMD,
468-
const MCInstrDesc &MCID) {
469-
MachineFunction &MF = *BB.getParent();
470-
MachineInstr *MI = MF.CreateMachineInstr(MCID, MIMD.getDL());
471-
BB.insertAfter(I, MI);
472-
return MachineInstrBuilder(MF, MI)
473-
.copyMIMetadata(MIMD);
474-
}
475-
476471
inline MachineInstrBuilder BuildMI(MachineBasicBlock &BB,
477472
MachineBasicBlock::instr_iterator I,
478473
const MIMetadata &MIMD,

llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)