diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-01-25 09:12:57 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-01-25 09:12:57 +0000 |
commit | a6eff8a43275c3b66ca280e426fb14b3086d36f0 (patch) | |
tree | e8c153e36153456fca71f5cf958907b7d64a9f63 /llvm/lib/CodeGen | |
parent | b4c8a4ecc9d097b405b3308329f73e5854ae7195 (diff) | |
download | bcm5719-llvm-a6eff8a43275c3b66ca280e426fb14b3086d36f0.tar.gz bcm5719-llvm-a6eff8a43275c3b66ca280e426fb14b3086d36f0.zip |
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.
llvm-svn: 25599
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 7badd283a82..06a3b016de2 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -59,8 +59,10 @@ namespace { 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 @@ namespace { 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 @@ void SelectionDAGISel::ScheduleAndEmitDAG(SelectionDAG &DAG) { 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: |