diff options
author | Andrew Trick <atrick@apple.com> | 2013-08-30 03:49:48 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2013-08-30 03:49:48 +0000 |
commit | 4c60b8a78d811a5b16ae45f6957933fb479bab58 (patch) | |
tree | 35355754c69394e12072b41a8d9c9978f0bc241e /lib/Target/Hexagon | |
parent | e206efd39bcc00600d816b67b041820b35d023fe (diff) | |
download | llvm-4c60b8a78d811a5b16ae45f6957933fb479bab58.tar.gz llvm-4c60b8a78d811a5b16ae45f6957933fb479bab58.tar.bz2 llvm-4c60b8a78d811a5b16ae45f6957933fb479bab58.tar.xz |
mi-sched: Precompute a PressureDiff for each instruction, adjust for liveness later.
Created SUPressureDiffs array to hold the per node PDiff computed during DAG building.
Added a getUpwardPressureDelta API that will soon replace the old
one. Compute PressureDelta here from the precomputed PressureDiffs.
Updating for liveness will come next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189640 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon')
-rw-r--r-- | lib/Target/Hexagon/HexagonMachineScheduler.cpp | 10 | ||||
-rw-r--r-- | lib/Target/Hexagon/HexagonMachineScheduler.h | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/lib/Target/Hexagon/HexagonMachineScheduler.cpp b/lib/Target/Hexagon/HexagonMachineScheduler.cpp index 10bb3e91f2..22c485f51c 100644 --- a/lib/Target/Hexagon/HexagonMachineScheduler.cpp +++ b/lib/Target/Hexagon/HexagonMachineScheduler.cpp @@ -407,11 +407,11 @@ SUnit *ConvergingVLIWScheduler::SchedBoundary::pickOnlyChoice() { #ifndef NDEBUG void ConvergingVLIWScheduler::traceCandidate(const char *Label, const ReadyQueue &Q, - SUnit *SU, PressureElement P) { + SUnit *SU, PressureChange P) { dbgs() << Label << " " << Q.getName() << " "; if (P.isValid()) - dbgs() << DAG->TRI->getRegPressureSetName(P.PSetID) << ":" << P.UnitIncrease - << " "; + dbgs() << DAG->TRI->getRegPressureSetName(P.getPSet()) << ":" + << P.getUnitInc() << " "; else dbgs() << " "; SU->dump(DAG); @@ -517,8 +517,8 @@ int ConvergingVLIWScheduler::SchedulingCost(ReadyQueue &Q, SUnit *SU, ResCount += (NumNodesBlocking * ScaleTwo); // Factor in reg pressure as a heuristic. - ResCount -= (Delta.Excess.UnitIncrease*PriorityThree); - ResCount -= (Delta.CriticalMax.UnitIncrease*PriorityThree); + ResCount -= (Delta.Excess.getUnitInc()*PriorityThree); + ResCount -= (Delta.CriticalMax.getUnitInc()*PriorityThree); DEBUG(if (verbose) dbgs() << " Total(" << ResCount << ")"); diff --git a/lib/Target/Hexagon/HexagonMachineScheduler.h b/lib/Target/Hexagon/HexagonMachineScheduler.h index 171193e230..8ac333fa7d 100644 --- a/lib/Target/Hexagon/HexagonMachineScheduler.h +++ b/lib/Target/Hexagon/HexagonMachineScheduler.h @@ -233,7 +233,7 @@ protected: SchedCandidate &Candidate); #ifndef NDEBUG void traceCandidate(const char *Label, const ReadyQueue &Q, SUnit *SU, - PressureElement P = PressureElement()); + PressureChange P = PressureChange()); #endif }; |