Simplify the interface to the schedulers, to not pass the selected heuristic
authorChris Lattner <sabre@nondot.org>
Fri, 10 Mar 2006 07:48:52 +0000 (07:48 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 10 Mar 2006 07:48:52 +0000 (07:48 +0000)
in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26691 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/ScheduleDAG.h

index 9c948a61f17003a9fd84f4b27b5be9c02a89a45b..ba3637b5c3207c0fb8000d1569e67b14a3ea125a 100644 (file)
@@ -34,16 +34,6 @@ namespace llvm {
   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 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
   /// issued this cycle, and whether or not a noop needs to be inserted to handle
   /// the hazard.
@@ -296,8 +286,7 @@ namespace llvm {
                 const TargetMachine &tm)
       : DAG(dag), BB(bb), TM(tm) {}
 
-    virtual ~ScheduleDAG() {
-    };
+    virtual ~ScheduleDAG() {}
 
     /// Run - perform scheduling.
     ///
@@ -337,10 +326,11 @@ namespace llvm {
                     std::map<SDNode*, unsigned> &VRBaseMap);
   };
 
+  ScheduleDAG *createBFS_DAGScheduler(SelectionDAG &DAG, MachineBasicBlock *BB);
+  
   /// createSimpleDAGScheduler - This creates a simple two pass instruction
   /// scheduler.
-  ScheduleDAG* createSimpleDAGScheduler(SchedHeuristics Heuristic,
-                                        SelectionDAG &DAG,
+  ScheduleDAG* createSimpleDAGScheduler(bool NoItins, SelectionDAG &DAG,
                                         MachineBasicBlock *BB);
 
   /// createBURRListDAGScheduler - This creates a bottom up register usage