Fix the MachineScheduler's logic for updating ready times for in-order.
authorAndrew Trick <atrick@apple.com>
Sat, 7 Jun 2014 01:48:43 +0000 (01:48 +0000)
committerAndrew Trick <atrick@apple.com>
Sat, 7 Jun 2014 01:48:43 +0000 (01:48 +0000)
commit808823cf77076a4a77937a02b0c51b315f722b7b
tree124797587e97e87790ddfbdd16efae4ae405b10c
parent7fe88820e31d6e47031f42291e34d7416defc4cc
Fix the MachineScheduler's logic for updating ready times for in-order.

Now the scheduler updates a node's ready time as soon as it is
scheduled, before releasing dependent nodes. There was a reason I
didn't do this initially but it no longer applies.

A53 is in-order and was running into an issue where nodes where added
to the readyQ too early. That's now fixed.

This also makes it easier for custom scheduling strategies to build
heuristics based on the actual cycles that the node was scheduled at.

The only impact on OOO (sandybridge/cyclone) is that ready times will
be slightly more accurate. I didn't measure any significant regressions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210390 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineScheduler.h
lib/CodeGen/MachineScheduler.cpp