Instead of adding dependence edges between terminator instructions
authorDan Gohman <gohman@apple.com>
Fri, 16 Jan 2009 22:10:20 +0000 (22:10 +0000)
committerDan Gohman <gohman@apple.com>
Fri, 16 Jan 2009 22:10:20 +0000 (22:10 +0000)
commitf7119393a97c2a10757084b6bc186380f8c19a73
tree7824f429705e746de59c9c813df694fd3f19fab0
parent49bb50e0b65d4646a1d44eec3196c003c13caa96
Instead of adding dependence edges between terminator instructions
and every other instruction in their blocks to keep the terminator
instructions at the end, teach the post-RA scheduler how to operate
on ranges of instructions, and exclude terminators from the range
of instructions that get scheduled.

Also, exclude mid-block labels, such as EH_LABEL instructions, and
schedule code before them separately from code after them. This
fixes problems with the post-RA scheduler moving code past
EH_LABELs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62366 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/ScheduleDAG.h
lib/CodeGen/PostRASchedulerList.cpp
lib/CodeGen/ScheduleDAG.cpp
lib/CodeGen/ScheduleDAGEmit.cpp
lib/CodeGen/ScheduleDAGInstrs.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp