MI-Sched: Adjust regpressure limits for reserved regs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184564 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Trick
2013-06-21 18:32:58 +00:00
parent 84569698f0
commit 1f8b48ab32
4 changed files with 53 additions and 7 deletions

View File

@ -533,7 +533,7 @@ bool RegPressureTracker::advance() {
static void computeExcessPressureDelta(ArrayRef<unsigned> OldPressureVec,
ArrayRef<unsigned> NewPressureVec,
RegPressureDelta &Delta,
const TargetRegisterInfo *TRI) {
const RegisterClassInfo *RCI) {
int ExcessUnits = 0;
unsigned PSetID = ~0U;
for (unsigned i = 0, e = OldPressureVec.size(); i < e; ++i) {
@ -543,7 +543,7 @@ static void computeExcessPressureDelta(ArrayRef<unsigned> OldPressureVec,
if (!PDiff) // No change in this set in the common case.
continue;
// Only consider change beyond the limit.
unsigned Limit = TRI->getRegPressureSetLimit(i);
unsigned Limit = RCI->getRegPressureSetLimit(i);
if (Limit > POld) {
if (Limit > PNew)
PDiff = 0; // Under the limit
@ -659,7 +659,7 @@ getMaxUpwardPressureDelta(const MachineInstr *MI, RegPressureDelta &Delta,
bumpUpwardPressure(MI);
computeExcessPressureDelta(SavedPressure, CurrSetPressure, Delta, TRI);
computeExcessPressureDelta(SavedPressure, CurrSetPressure, Delta, RCI);
computeMaxPressureDelta(SavedMaxPressure, P.MaxSetPressure, CriticalPSets,
MaxPressureLimit, Delta);
assert(Delta.CriticalMax.UnitIncrease >= 0 &&
@ -749,7 +749,7 @@ getMaxDownwardPressureDelta(const MachineInstr *MI, RegPressureDelta &Delta,
bumpDownwardPressure(MI);
computeExcessPressureDelta(SavedPressure, CurrSetPressure, Delta, TRI);
computeExcessPressureDelta(SavedPressure, CurrSetPressure, Delta, RCI);
computeMaxPressureDelta(SavedMaxPressure, P.MaxSetPressure, CriticalPSets,
MaxPressureLimit, Delta);
assert(Delta.CriticalMax.UnitIncrease >= 0 &&