diff --git a/include/llvm/CodeGen/ScheduleDAG.h b/include/llvm/CodeGen/ScheduleDAG.h index 5bc51e8582f..b99e429ab12 100644 --- a/include/llvm/CodeGen/ScheduleDAG.h +++ b/include/llvm/CodeGen/ScheduleDAG.h @@ -34,17 +34,16 @@ namespace llvm { typedef std::vector NIVector; typedef std::vector::iterator NIIterator; - // Scheduling heuristics enum SchedHeuristics { defaultScheduling, // Let the target specify its preference. noScheduling, // No scheduling, emit breath first sequence. simpleScheduling, // Two pass, min. critical path, max. utilization. simpleNoItinScheduling, // Same as above exact using generic latency. - listSchedulingBURR // Bottom up reg reduction list scheduling. + listSchedulingBURR, // Bottom up reg reduction list scheduling. + listSchedulingG5 // G5-specific scheduler. FIXME: parameterize better }; - //===--------------------------------------------------------------------===// /// /// Node group - This struct is used to manage flagged node groups. @@ -359,6 +358,12 @@ namespace llvm { /// reduction list scheduler. ScheduleDAG* createBURRListDAGScheduler(SelectionDAG &DAG, MachineBasicBlock *BB); + + /// createTDG5ListDAGScheduler - This creates a top-down list scheduler for + /// the PowerPC G5. FIXME: pull the priority function out into the PPC + /// backend! + ScheduleDAG* createTDG5ListDAGScheduler(SelectionDAG &DAG, + MachineBasicBlock *BB); } #endif