diff options
Diffstat (limited to 'llvm/lib/CodeGen/MachineScheduler.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineScheduler.cpp | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp index de77145..df90077 100644 --- a/llvm/lib/CodeGen/MachineScheduler.cpp +++ b/llvm/lib/CodeGen/MachineScheduler.cpp @@ -1414,9 +1414,9 @@ void ScheduleDAGMILive::initRegPressure() { updatePressureDiffs(LiveUses); } - LLVM_DEBUG(dbgs() << "Top Pressure:\n"; + LLVM_DEBUG(dbgs() << "Top Pressure: "; dumpRegSetPressure(TopRPTracker.getRegSetPressureAtPos(), TRI); - dbgs() << "Bottom Pressure:\n"; + dbgs() << "Bottom Pressure: "; dumpRegSetPressure(BotRPTracker.getRegSetPressureAtPos(), TRI);); assert((BotRPTracker.getPos() == RegionEnd || @@ -1437,11 +1437,14 @@ void ScheduleDAGMILive::initRegPressure() { RegionCriticalPSets.push_back(PressureChange(i)); } } - LLVM_DEBUG(dbgs() << "Excess PSets: "; - for (const PressureChange &RCPS - : RegionCriticalPSets) dbgs() - << TRI->getRegPressureSetName(RCPS.getPSet()) << " "; - dbgs() << "\n"); + LLVM_DEBUG({ + if (RegionCriticalPSets.size() > 0) { + dbgs() << "Excess PSets: "; + for (const PressureChange &RCPS : RegionCriticalPSets) + dbgs() << TRI->getRegPressureSetName(RCPS.getPSet()) << " "; + dbgs() << "\n"; + } + }); } void ScheduleDAGMILive:: @@ -1495,10 +1498,14 @@ void ScheduleDAGMILive::updatePressureDiffs(ArrayRef<VRegMaskOrUnit> LiveUses) { PressureDiff &PDiff = getPressureDiff(&SU); PDiff.addPressureChange(Reg, Decrement, &MRI); - LLVM_DEBUG(dbgs() << " UpdateRegP: SU(" << SU.NodeNum << ") " - << printReg(Reg, TRI) << ':' - << PrintLaneMask(P.LaneMask) << ' ' << *SU.getInstr(); - dbgs() << " to "; PDiff.dump(*TRI);); + if (llvm::any_of(PDiff, [](const PressureChange &Change) { + return Change.isValid(); + })) + LLVM_DEBUG(dbgs() + << " UpdateRegPressure: SU(" << SU.NodeNum << ") " + << printReg(Reg, TRI) << ':' + << PrintLaneMask(P.LaneMask) << ' ' << *SU.getInstr(); + dbgs() << " to "; PDiff.dump(*TRI);); } } else { assert(P.LaneMask.any()); @@ -1530,9 +1537,13 @@ void ScheduleDAGMILive::updatePressureDiffs(ArrayRef<VRegMaskOrUnit> LiveUses) { if (LRQ.valueIn() == VNI) { PressureDiff &PDiff = getPressureDiff(SU); PDiff.addPressureChange(Reg, true, &MRI); - LLVM_DEBUG(dbgs() << " UpdateRegP: SU(" << SU->NodeNum << ") " - << *SU->getInstr(); - dbgs() << " to "; PDiff.dump(*TRI);); + if (llvm::any_of(PDiff, [](const PressureChange &Change) { + return Change.isValid(); + })) + LLVM_DEBUG(dbgs() << " UpdateRegPressure: SU(" << SU->NodeNum + << ") " << *SU->getInstr(); + dbgs() << " to "; + PDiff.dump(*TRI);); } } } @@ -1792,7 +1803,7 @@ void ScheduleDAGMILive::scheduleMI(SUnit *SU, bool IsTopNode) { TopRPTracker.advance(RegOpers); assert(TopRPTracker.getPos() == CurrentTop && "out of sync"); - LLVM_DEBUG(dbgs() << "Top Pressure:\n"; dumpRegSetPressure( + LLVM_DEBUG(dbgs() << "Top Pressure: "; dumpRegSetPressure( TopRPTracker.getRegSetPressureAtPos(), TRI);); updateScheduledPressure(SU, TopRPTracker.getPressure().MaxSetPressure); @@ -1830,7 +1841,7 @@ void ScheduleDAGMILive::scheduleMI(SUnit *SU, bool IsTopNode) { SmallVector<VRegMaskOrUnit, 8> LiveUses; BotRPTracker.recede(RegOpers, &LiveUses); assert(BotRPTracker.getPos() == CurrentBottom && "out of sync"); - LLVM_DEBUG(dbgs() << "Bottom Pressure:\n"; dumpRegSetPressure( + LLVM_DEBUG(dbgs() << "Bottom Pressure: "; dumpRegSetPressure( BotRPTracker.getRegSetPressureAtPos(), TRI);); updateScheduledPressure(SU, BotRPTracker.getPressure().MaxSetPressure); |