diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/GCNRegPressure.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/GCNRegPressure.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp b/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp index aeec3e886327..3456f9a6156c 100644 --- a/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp +++ b/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp @@ -125,12 +125,14 @@ bool GCNRegPressure::less(const GCNSubtarget &ST, unsigned MaxOccupancy) const { const auto SGPROcc = std::min(MaxOccupancy, ST.getOccupancyWithNumSGPRs(getSGPRNum())); - const auto VGPROcc = std::min(MaxOccupancy, - ST.getOccupancyWithNumVGPRs(getVGPRNum())); + const auto VGPROcc = + std::min(MaxOccupancy, + ST.getOccupancyWithNumVGPRs(getVGPRNum(ST.hasGFX90AInsts()))); const auto OtherSGPROcc = std::min(MaxOccupancy, ST.getOccupancyWithNumSGPRs(O.getSGPRNum())); - const auto OtherVGPROcc = std::min(MaxOccupancy, - ST.getOccupancyWithNumVGPRs(O.getVGPRNum())); + const auto OtherVGPROcc = + std::min(MaxOccupancy, + ST.getOccupancyWithNumVGPRs(O.getVGPRNum(ST.hasGFX90AInsts()))); const auto Occ = std::min(SGPROcc, VGPROcc); const auto OtherOcc = std::min(OtherSGPROcc, OtherVGPROcc); @@ -161,7 +163,8 @@ bool GCNRegPressure::less(const GCNSubtarget &ST, } } return SGPRImportant ? (getSGPRNum() < O.getSGPRNum()): - (getVGPRNum() < O.getVGPRNum()); + (getVGPRNum(ST.hasGFX90AInsts()) < + O.getVGPRNum(ST.hasGFX90AInsts())); } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) @@ -169,7 +172,9 @@ LLVM_DUMP_METHOD void GCNRegPressure::print(raw_ostream &OS, const GCNSubtarget *ST) const { OS << "VGPRs: " << Value[VGPR32] << ' '; OS << "AGPRs: " << Value[AGPR32]; - if (ST) OS << "(O" << ST->getOccupancyWithNumVGPRs(getVGPRNum()) << ')'; + if (ST) OS << "(O" + << ST->getOccupancyWithNumVGPRs(getVGPRNum(ST->hasGFX90AInsts())) + << ')'; OS << ", SGPRs: " << getSGPRNum(); if (ST) OS << "(O" << ST->getOccupancyWithNumSGPRs(getSGPRNum()) << ')'; OS << ", LVGPR WT: " << getVGPRTuplesWeight() @@ -384,6 +389,7 @@ bool GCNDownwardRPTracker::advanceBeforeNext() { void GCNDownwardRPTracker::advanceToNext() { LastTrackedMI = &*NextMI++; + NextMI = skipDebugInstructionsForward(NextMI, MBBEnd); // Add new registers or mask bits. for (const auto &MO : LastTrackedMI->operands()) { |