The BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap
authorChris Lattner <sabre@nondot.org>
Fri, 21 Apr 2006 17:16:16 +0000 (17:16 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 21 Apr 2006 17:16:16 +0000 (17:16 +0000)
miscompares).  Switch RISC targets to use the list-td scheduler, which isn't.

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

lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp

index e5e462bb3b4b345254611e45d8a8073252d8c219..96a81e0938340be41ee9ab33c0feeaa8adba7d0e 100644 (file)
@@ -3126,9 +3126,12 @@ void SelectionDAGISel::ScheduleAndEmitDAG(SelectionDAG &DAG) {
   default: assert(0 && "Unrecognized scheduling heuristic");
   case defaultScheduling:
     if (TLI.getSchedulingPreference() == TargetLowering::SchedulingForLatency)
-      SL = createSimpleDAGScheduler(noScheduling, DAG, BB);
-    else /* TargetLowering::SchedulingForRegPressure */
+      SL = createTDListDAGScheduler(DAG, BB, CreateTargetHazardRecognizer());
+    else {
+      assert(TLI.getSchedulingPreference() ==
+             TargetLowering::SchedulingForRegPressure && "Unknown sched type!");
       SL = createBURRListDAGScheduler(DAG, BB);
+    }
     break;
   case noScheduling:
     SL = createBFS_DAGScheduler(DAG, BB);