PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency.
authorAndrew Trick <atrick@apple.com>
Tue, 12 Apr 2011 19:54:36 +0000 (19:54 +0000)
committerAndrew Trick <atrick@apple.com>
Tue, 12 Apr 2011 19:54:36 +0000 (19:54 +0000)
commit3eb4319313b3fb9189cd4be5b3e5375be9bdc2f9
treec789be1296f5462ce82ff1934f405a8a1302db38
parent23ba1e4faa8317e762eb95aecd786e9600e9f834
PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency.

UnitsSharePred was a source of randomness in the scheduler: node
priority depended on the queue data structure. I rewrote the recent
VRegCycle heuristics to completely replace the old heuristic without
any randomness. To make these heuristic adjustments to node latency work,
I also needed to do something a little more reasonable with TokenFactor. I
gave it zero latency to its consumers and always schedule it as low as
possible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129383 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
test/CodeGen/ARM/memcpy-inline.ll
test/CodeGen/ARM/vfp.ll