typedef std::vector<NodeInfoPtr> NIVector;
typedef std::vector<NodeInfoPtr>::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.
/// 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