mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-23 06:35:25 +00:00
Add a new "fast" scheduler. This is currently basically just a
copy of the BURRList scheduler, but with several parts ripped out, such as backtracking, online topological sort maintenance (needed by backtracking), the priority queue, and Sethi-Ullman number computation and maintenance (needed by the priority queue). As a result of all this, it generates somewhat lower quality code, but that's its tradeoff for running about 30% faster than list-burr in -fast mode in many cases. This is somewhat experimental. Moving forward, major pieces of this can be refactored with pieces in common with ScheduleDAGRRList.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56307 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -44,6 +44,7 @@ namespace {
|
||||
(void) llvm::createBURRListDAGScheduler(NULL, NULL, NULL, false);
|
||||
(void) llvm::createTDRRListDAGScheduler(NULL, NULL, NULL, false);
|
||||
(void) llvm::createTDListDAGScheduler(NULL, NULL, NULL, false);
|
||||
(void) llvm::createFastDAGScheduler(NULL, NULL, NULL, false);
|
||||
(void) llvm::createDefaultScheduler(NULL, NULL, NULL, false);
|
||||
|
||||
}
|
||||
|
||||
@@ -414,6 +414,13 @@ namespace llvm {
|
||||
MachineBasicBlock *BB,
|
||||
bool Fast);
|
||||
|
||||
/// createFastDAGScheduler - This creates a "fast" scheduler.
|
||||
///
|
||||
ScheduleDAG *createFastDAGScheduler(SelectionDAGISel *IS,
|
||||
SelectionDAG *DAG,
|
||||
MachineBasicBlock *BB,
|
||||
bool Fast);
|
||||
|
||||
/// createDefaultScheduler - This creates an instruction scheduler appropriate
|
||||
/// for the target.
|
||||
ScheduleDAG* createDefaultScheduler(SelectionDAGISel *IS,
|
||||
|
||||
Reference in New Issue
Block a user