summaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-04-21 17:16:16 +0000
committerChris Lattner <sabre@nondot.org>2006-04-21 17:16:16 +0000
commit4a1cd9c61e3e648587d33d5f02ddad97e87f16aa (patch)
treef6954d176a62019b4485da6d210c9026ff02043b /lib/CodeGen
parent62af9e6cfcf8e2eba6febd068c18f86f4e3c5bad (diff)
downloadllvm-4a1cd9c61e3e648587d33d5f02ddad97e87f16aa.tar.gz
llvm-4a1cd9c61e3e648587d33d5f02ddad97e87f16aa.tar.bz2
llvm-4a1cd9c61e3e648587d33d5f02ddad97e87f16aa.tar.xz
The BFS scheduler is apparently nondeterminstic (causes many llvmgcc bootstrap
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
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index e5e462bb3b..96a81e0938 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -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);