Reorganize MachineScheduler interfaces and publish them in the header.
authorAndrew Trick <atrick@apple.com>
Tue, 11 Sep 2012 00:39:15 +0000 (00:39 +0000)
committerAndrew Trick <atrick@apple.com>
Tue, 11 Sep 2012 00:39:15 +0000 (00:39 +0000)
commit78e5efe1b202f71975ad93f33b1fda21d83fd1fb
tree06de32d5dfbdad540d72e89ba53eec2abaa3c4c7
parent88df977d4acde2fa5f4ef3db3ddb1ad1cd3e2f92
Reorganize MachineScheduler interfaces and publish them in the header.

The Hexagon target decided to use a lot of functionality from the
target-independent scheduler. That's fine, and other targets should be
able to do the same. This reorg and API update makes that easy.

For the record, ScheduleDAGMI was not meant to be subclassed. Instead,
new scheduling algorithms should be able to implement
MachineSchedStrategy and be done. But if need be, it's nice to be
able to extend ScheduleDAGMI, so I also made that easier. The target
scheduler is somewhat more apt to break that way though.

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