[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