[llvm] r186632 - MI Sched: Update the way resources are tracked so the current heuristics make more sense.
Alexey Samsonov
samsonov at google.com
Fri Jul 19 02:54:06 PDT 2013
Hi Andrew!
Looks like this triggered an error report on out MSan bootstrap bot. I've
tried to fix this in r186658.
On Fri, Jul 19, 2013 at 4:20 AM, Andrew Trick <atrick at apple.com> wrote:
> Author: atrick
> Date: Thu Jul 18 19:20:07 2013
> New Revision: 186632
>
> URL: http://llvm.org/viewvc/llvm-project?rev=186632&view=rev
> Log:
> MI Sched: Update the way resources are tracked so the current heuristics
> make more sense.
>
> Modified:
> llvm/trunk/lib/CodeGen/MachineScheduler.cpp
>
> Modified: llvm/trunk/lib/CodeGen/MachineScheduler.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineScheduler.cpp?rev=186632&r1=186631&r2=186632&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/MachineScheduler.cpp (original)
> +++ llvm/trunk/lib/CodeGen/MachineScheduler.cpp Thu Jul 18 19:20:07 2013
> @@ -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<unsigned, 16> ExecutedResCounts;
>
> @@ -1658,7 +1658,7 @@ void ConvergingScheduler::SchedBoundary:
> << 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 Cy
> 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) << ": "
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
--
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130719/42404a6f/attachment.html>
More information about the llvm-commits
mailing list