mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 06:31:18 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25599 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d854b62afa
commit
3f23952404
@ -59,8 +59,10 @@ namespace {
|
|||||||
ISHeuristic(
|
ISHeuristic(
|
||||||
"sched",
|
"sched",
|
||||||
cl::desc("Choose scheduling style"),
|
cl::desc("Choose scheduling style"),
|
||||||
cl::init(noScheduling),
|
cl::init(defaultScheduling),
|
||||||
cl::values(
|
cl::values(
|
||||||
|
clEnumValN(defaultScheduling, "default",
|
||||||
|
"Target preferred scheduling style"),
|
||||||
clEnumValN(noScheduling, "none",
|
clEnumValN(noScheduling, "none",
|
||||||
"No scheduling: breadth first sequencing"),
|
"No scheduling: breadth first sequencing"),
|
||||||
clEnumValN(simpleScheduling, "simple",
|
clEnumValN(simpleScheduling, "simple",
|
||||||
@ -69,7 +71,7 @@ namespace {
|
|||||||
clEnumValN(simpleNoItinScheduling, "simple-noitin",
|
clEnumValN(simpleNoItinScheduling, "simple-noitin",
|
||||||
"Simple two pass scheduling: Same as simple "
|
"Simple two pass scheduling: Same as simple "
|
||||||
"except using generic latency"),
|
"except using generic latency"),
|
||||||
clEnumValN(listSchedulingBURR, "list-BURR",
|
clEnumValN(listSchedulingBURR, "list-burr",
|
||||||
"Bottom up register reduction list scheduling"),
|
"Bottom up register reduction list scheduling"),
|
||||||
clEnumValEnd));
|
clEnumValEnd));
|
||||||
} // namespace
|
} // namespace
|
||||||
@ -1772,6 +1774,12 @@ void SelectionDAGISel::ScheduleAndEmitDAG(SelectionDAG &DAG) {
|
|||||||
|
|
||||||
switch (ISHeuristic) {
|
switch (ISHeuristic) {
|
||||||
default: assert(0 && "Unrecognized scheduling heuristic");
|
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 noScheduling:
|
||||||
case simpleScheduling:
|
case simpleScheduling:
|
||||||
case simpleNoItinScheduling:
|
case simpleNoItinScheduling:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user