Simplify the interface to the schedulers, to not pass the selected heuristic

in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26691 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2006-03-10 07:48:52 +00:00
parent 2f5806c2b3
commit 37cb415eec

View File

@@ -34,16 +34,6 @@ namespace llvm {
typedef std::vector<NodeInfoPtr> NIVector; typedef std::vector<NodeInfoPtr> NIVector;
typedef std::vector<NodeInfoPtr>::iterator NIIterator; typedef std::vector<NodeInfoPtr>::iterator NIIterator;
// Scheduling heuristics
enum SchedHeuristics {
defaultScheduling, // Let the target specify its preference.
noScheduling, // No scheduling, emit breadth 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.
listSchedulingTD // Top-down list scheduler.
};
/// HazardRecognizer - This determines whether or not an instruction can be /// HazardRecognizer - This determines whether or not an instruction can be
/// issued this cycle, and whether or not a noop needs to be inserted to handle /// issued this cycle, and whether or not a noop needs to be inserted to handle
/// the hazard. /// the hazard.
@@ -296,8 +286,7 @@ namespace llvm {
const TargetMachine &tm) const TargetMachine &tm)
: DAG(dag), BB(bb), TM(tm) {} : DAG(dag), BB(bb), TM(tm) {}
virtual ~ScheduleDAG() { virtual ~ScheduleDAG() {}
};
/// Run - perform scheduling. /// Run - perform scheduling.
/// ///
@@ -337,10 +326,11 @@ namespace llvm {
std::map<SDNode*, unsigned> &VRBaseMap); std::map<SDNode*, unsigned> &VRBaseMap);
}; };
ScheduleDAG *createBFS_DAGScheduler(SelectionDAG &DAG, MachineBasicBlock *BB);
/// createSimpleDAGScheduler - This creates a simple two pass instruction /// createSimpleDAGScheduler - This creates a simple two pass instruction
/// scheduler. /// scheduler.
ScheduleDAG* createSimpleDAGScheduler(SchedHeuristics Heuristic, ScheduleDAG* createSimpleDAGScheduler(bool NoItins, SelectionDAG &DAG,
SelectionDAG &DAG,
MachineBasicBlock *BB); MachineBasicBlock *BB);
/// createBURRListDAGScheduler - This creates a bottom up register usage /// createBURRListDAGScheduler - This creates a bottom up register usage