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 | 1a8313458f4462e7cd0373df86c271ee527cb4a2 (patch) | |
| tree | 08a9056cf5fa92bb87507624196c287212fb9e56 /llvm/lib/Target/Hexagon | |
| parent | 057b04f6620c4ff49d4f1b6d41958f6f552b8ac4 (diff) | |
| download | bcm5719-llvm-1a8313458f4462e7cd0373df86c271ee527cb4a2.tar.gz bcm5719-llvm-1a8313458f4462e7cd0373df86c271ee527cb4a2.zip | |
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.
llvm-svn: 189640
Diffstat (limited to 'llvm/lib/Target/Hexagon')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp | 10 | ||||
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonMachineScheduler.h | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp b/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp index 10bb3e91f2d..22c485f51c4 100644 --- a/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp +++ b/llvm/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/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h b/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h index 171193e2307..8ac333fa7db 100644 --- a/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h +++ b/llvm/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 }; |

