[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

Evan Cheng evan.cheng at apple.com
Wed Jan 25 01:13:10 PST 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

SelectionDAGISel.cpp updated: 1.135 -> 1.136
---
Log message:

If scheduler choice is the default (-sched=default), use target scheduling
preference to determine which scheduler to use. SchedulingForLatency ==
Breadth first; SchedulingForRegPressure == bottom up register reduction list
scheduler.


---
Diffs of the changes:  (+10 -2)

 SelectionDAGISel.cpp |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.135 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.136
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.135	Mon Jan 23 07:34:04 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp	Wed Jan 25 03:12:57 2006
@@ -59,8 +59,10 @@
   ISHeuristic(
     "sched",
     cl::desc("Choose scheduling style"),
-    cl::init(noScheduling),
+    cl::init(defaultScheduling),
     cl::values(
+      clEnumValN(defaultScheduling, "default",
+                 "Target preferred scheduling style"),
       clEnumValN(noScheduling, "none",
                  "No scheduling: breadth first sequencing"),
       clEnumValN(simpleScheduling, "simple",
@@ -69,7 +71,7 @@
       clEnumValN(simpleNoItinScheduling, "simple-noitin",
                  "Simple two pass scheduling: Same as simple "
                  "except using generic latency"),
-      clEnumValN(listSchedulingBURR, "list-BURR",
+      clEnumValN(listSchedulingBURR, "list-burr",
                  "Bottom up register reduction list scheduling"),
       clEnumValEnd));
 } // namespace
@@ -1772,6 +1774,12 @@
 
   switch (ISHeuristic) {
   default: assert(0 && "Unrecognized scheduling heuristic");
+  case defaultScheduling:
+    if (TLI.getSchedulingPreference() == TargetLowering::SchedulingForLatency)
+      SL = createSimpleDAGScheduler(noScheduling, DAG, BB);
+    else /* TargetLowering::SchedulingForRegPressure */
+      SL = createBURRListDAGScheduler(DAG, BB);
+    break;
   case noScheduling:
   case simpleScheduling:
   case simpleNoItinScheduling:






More information about the llvm-commits mailing list