summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-01-25 09:12:57 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-01-25 09:12:57 +0000
commita6eff8a43275c3b66ca280e426fb14b3086d36f0 (patch)
treee8c153e36153456fca71f5cf958907b7d64a9f63 /llvm/lib/CodeGen
parentb4c8a4ecc9d097b405b3308329f73e5854ae7195 (diff)
downloadbcm5719-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.cpp12
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:
OpenPOWER on IntegriCloud