OSDN Git Service

Fix some register-alias-related bugs in the post-RA scheduler liveness
authorDan Gohman <gohman@apple.com>
Tue, 16 Dec 2008 03:25:46 +0000 (03:25 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 16 Dec 2008 03:25:46 +0000 (03:25 +0000)
commit3f23744df4809eba94284e601e81489212c974d4
treebf2d1d7711a774bac89352554c163f167abf36bb
parent64722e5163785da17ab581364c9655071b566180
Fix some register-alias-related bugs in the post-RA scheduler liveness
computation code. Also, avoid adding output-depenency edges when both
defs are dead, which frequently happens with EFLAGS defs.

Compute Depth and Height lazily, and always in terms of edge latency
values. For the schedulers that don't care about latency, edge latencies
are set to 1.

Eliminate Cycle and CycleBound, and LatencyPriorityQueue's Latencies array.
These are all subsumed by the Depth and Height fields.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61073 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/llvm/CodeGen/LatencyPriorityQueue.h
include/llvm/CodeGen/ScheduleDAG.h
include/llvm/CodeGen/ScheduleDAGInstrs.h
lib/CodeGen/LatencyPriorityQueue.cpp
lib/CodeGen/PostRASchedulerList.cpp
lib/CodeGen/ScheduleDAG.cpp
lib/CodeGen/ScheduleDAGInstrs.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGList.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
test/CodeGen/X86/fold-pcmpeqd-0.ll