Skip to content

Commit 9bf2639

Browse files
committed
Remove unrelated changes, use MBBLastSlot for live-throughs as well.
1 parent 4874306 commit 9bf2639

File tree

1 file changed

+17
-19
lines changed

1 file changed

+17
-19
lines changed

llvm/lib/Target/AMDGPU/GCNRegPressure.cpp

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -461,8 +461,6 @@ GCNRPTracker::LiveRegSet llvm::getLiveRegs(SlotIndex SI,
461461
const LiveIntervals &LIS,
462462
const MachineRegisterInfo &MRI) {
463463
GCNRPTracker::LiveRegSet LiveRegs;
464-
if (!SI.isValid())
465-
return LiveRegs;
466464
for (unsigned I = 0, E = MRI.getNumVirtRegs(); I != E; ++I) {
467465
auto Reg = Register::index2VirtReg(I);
468466
if (!LIS.hasInterval(Reg))
@@ -908,28 +906,29 @@ bool GCNRegPressurePrinter::runOnMachineFunction(MachineFunction &MF) {
908906

909907
SlotIndex MBBStartSlot = LIS.getSlotIndexes()->getMBBStartIdx(&MBB);
910908
SlotIndex MBBLastSlot = LIS.getSlotIndexes()->getMBBLastIdx(&MBB);
911-
bool MBBHasNonDebugInstrs = MBBStartSlot != MBBLastSlot.getBaseIndex();
912909

913910
GCNRPTracker::LiveRegSet LiveIn, LiveOut;
914911
GCNRegPressure RPAtMBBEnd;
915912

916-
if (!MBBHasNonDebugInstrs) {
917-
LiveIn = LiveOut = getLiveRegs(MBBStartSlot, LIS, MRI);
918-
RPAtMBBEnd = getRegPressure(MRI, LiveIn);
919-
} else if (UseDownwardTracker) {
920-
GCNDownwardRPTracker RPT(LIS);
921-
RPT.reset(MBB.front());
913+
if (UseDownwardTracker) {
914+
if (MBB.empty()) {
915+
LiveIn = LiveOut = getLiveRegs(MBBStartSlot, LIS, MRI);
916+
RPAtMBBEnd = getRegPressure(MRI, LiveIn);
917+
} else {
918+
GCNDownwardRPTracker RPT(LIS);
919+
RPT.reset(MBB.front());
922920

923-
LiveIn = RPT.getLiveRegs();
921+
LiveIn = RPT.getLiveRegs();
924922

925-
while (!RPT.advanceBeforeNext()) {
926-
GCNRegPressure RPBeforeMI = RPT.getPressure();
927-
RPT.advanceToNext();
928-
RP.emplace_back(RPBeforeMI, RPT.getPressure());
929-
}
923+
while (!RPT.advanceBeforeNext()) {
924+
GCNRegPressure RPBeforeMI = RPT.getPressure();
925+
RPT.advanceToNext();
926+
RP.emplace_back(RPBeforeMI, RPT.getPressure());
927+
}
930928

931-
LiveOut = RPT.getLiveRegs();
932-
RPAtMBBEnd = RPT.getPressure();
929+
LiveOut = RPT.getLiveRegs();
930+
RPAtMBBEnd = RPT.getPressure();
931+
}
933932
} else {
934933
GCNUpwardRPTracker RPT(LIS);
935934
RPT.reset(MRI, MBBLastSlot);
@@ -973,9 +972,8 @@ bool GCNRegPressurePrinter::runOnMachineFunction(MachineFunction &MF) {
973972
for (auto [Reg, Mask] : LiveIn) {
974973
LaneBitmask MaskIntersection = Mask & LiveOut.lookup(Reg);
975974
if (MaskIntersection.any()) {
976-
SlotIndex MBBEndSlot = LIS.getSlotIndexes()->getMBBEndIdx(&MBB);
977975
LaneBitmask LTMask = getRegLiveThroughMask(
978-
MRI, LIS, Reg, MBBStartSlot, MBBEndSlot, MaskIntersection);
976+
MRI, LIS, Reg, MBBStartSlot, MBBLastSlot, MaskIntersection);
979977
if (LTMask.any())
980978
LiveThrough[Reg] = LTMask;
981979
}

0 commit comments

Comments
 (0)