From b13ef17a149973087d8b11c716b3574e820deeed Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Fri, 19 Jul 2013 00:20:07 +0000 Subject: [PATCH] MI Sched: Update the way resources are tracked so the current heuristics make more sense. llvm-svn: 186632 --- llvm/lib/CodeGen/MachineScheduler.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/llvm/lib/CodeGen/MachineScheduler.cpp b/llvm/lib/CodeGen/MachineScheduler.cpp index ad55a77..314f621 100644 --- a/llvm/lib/CodeGen/MachineScheduler.cpp +++ b/llvm/lib/CodeGen/MachineScheduler.cpp @@ -1253,7 +1253,7 @@ public: // Count scheduled resources that have been executed. Resources are // considered executed if they become ready in the time that it takes to // saturate any resource including the one in question. Counts are scaled - // for direct comparison with other resources. Counts ca be compared with + // for direct comparison with other resources. Counts can be compared with // MOps * getMicroOpFactor and Latency * getLatencyFactor. SmallVector ExecutedResCounts; @@ -1658,7 +1658,7 @@ void ConvergingScheduler::SchedBoundary::setPolicy(CandPolicy &Policy, << Rem->CriticalPath << "\n"); } // If the same resource is limiting inside and outside the zone, do nothing. - if (IsResourceLimited && OtherResLimited && (ZoneCritResIdx == OtherCritIdx)) + if (ZoneCritResIdx == OtherCritIdx) return; DEBUG( @@ -1760,11 +1760,9 @@ countResource(unsigned PIdx, unsigned Cycles, unsigned ReadyCycle) { assert(Rem->RemainingCounts[PIdx] >= Count && "resource double counted"); Rem->RemainingCounts[PIdx] -= Count; - // Check if this resource exceeds the current critical resource by a full - // cycle. If so, it becomes the critical resource. - if (ZoneCritResIdx != PIdx - && ((int)(getResourceCount(PIdx) - getCriticalCount()) - >= (int)SchedModel->getLatencyFactor())) { + // Check if this resource exceeds the current critical resource. If so, it + // becomes the critical resource. + if (ZoneCritResIdx != PIdx && (getResourceCount(PIdx) > getCriticalCount())) { ZoneCritResIdx = PIdx; DEBUG(dbgs() << " *** Critical resource " << getResourceName(PIdx) << ": " -- 2.7.4