mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-01 17:28:21 +00:00
Revert an un-intended change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28278 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
dd73e7fa09
commit
ee00a1d12c
@ -143,18 +143,6 @@ namespace llvm {
|
|||||||
|
|
||||||
class ScheduleDAG {
|
class ScheduleDAG {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
// Scheduling heuristics
|
|
||||||
enum SchedHeuristics {
|
|
||||||
defaultScheduling, // Let the target specify its preference.
|
|
||||||
noScheduling, // No scheduling, emit breadth first sequence.
|
|
||||||
simpleScheduling, // Two pass, min. critical path, max. utilization.
|
|
||||||
simpleNoItinScheduling, // Same as above exact using generic latency.
|
|
||||||
listSchedulingBURR, // Bottom-up reg reduction list scheduling.
|
|
||||||
listSchedulingTDRR, // Top-down reg reduction list scheduling.
|
|
||||||
listSchedulingTD // Top-down list scheduler.
|
|
||||||
};
|
|
||||||
|
|
||||||
SelectionDAG &DAG; // DAG of the current basic block
|
SelectionDAG &DAG; // DAG of the current basic block
|
||||||
MachineBasicBlock *BB; // Current basic block
|
MachineBasicBlock *BB; // Current basic block
|
||||||
const TargetMachine &TM; // Target processor
|
const TargetMachine &TM; // Target processor
|
||||||
|
@ -58,28 +58,39 @@ ViewSchedDAGs("view-sched-dags", cl::Hidden,
|
|||||||
static const bool ViewISelDAGs = 0, ViewSchedDAGs = 0;
|
static const bool ViewISelDAGs = 0, ViewSchedDAGs = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Scheduling heuristics
|
||||||
|
enum SchedHeuristics {
|
||||||
|
defaultScheduling, // Let the target specify its preference.
|
||||||
|
noScheduling, // No scheduling, emit breadth first sequence.
|
||||||
|
simpleScheduling, // Two pass, min. critical path, max. utilization.
|
||||||
|
simpleNoItinScheduling, // Same as above exact using generic latency.
|
||||||
|
listSchedulingBURR, // Bottom-up reg reduction list scheduling.
|
||||||
|
listSchedulingTDRR, // Top-down reg reduction list scheduling.
|
||||||
|
listSchedulingTD // Top-down list scheduler.
|
||||||
|
};
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
cl::opt<ScheduleDAG::SchedHeuristics>
|
cl::opt<SchedHeuristics>
|
||||||
ISHeuristic(
|
ISHeuristic(
|
||||||
"sched",
|
"sched",
|
||||||
cl::desc("Choose scheduling style"),
|
cl::desc("Choose scheduling style"),
|
||||||
cl::init(ScheduleDAG::defaultScheduling),
|
cl::init(defaultScheduling),
|
||||||
cl::values(
|
cl::values(
|
||||||
clEnumValN(ScheduleDAG::defaultScheduling, "default",
|
clEnumValN(defaultScheduling, "default",
|
||||||
"Target preferred scheduling style"),
|
"Target preferred scheduling style"),
|
||||||
clEnumValN(ScheduleDAG::noScheduling, "none",
|
clEnumValN(noScheduling, "none",
|
||||||
"No scheduling: breadth first sequencing"),
|
"No scheduling: breadth first sequencing"),
|
||||||
clEnumValN(ScheduleDAG::simpleScheduling, "simple",
|
clEnumValN(simpleScheduling, "simple",
|
||||||
"Simple two pass scheduling: minimize critical path "
|
"Simple two pass scheduling: minimize critical path "
|
||||||
"and maximize processor utilization"),
|
"and maximize processor utilization"),
|
||||||
clEnumValN(ScheduleDAG::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(ScheduleDAG::listSchedulingBURR, "list-burr",
|
clEnumValN(listSchedulingBURR, "list-burr",
|
||||||
"Bottom-up register reduction list scheduling"),
|
"Bottom-up register reduction list scheduling"),
|
||||||
clEnumValN(ScheduleDAG::listSchedulingTDRR, "list-tdrr",
|
clEnumValN(listSchedulingTDRR, "list-tdrr",
|
||||||
"Top-down register reduction list scheduling"),
|
"Top-down register reduction list scheduling"),
|
||||||
clEnumValN(ScheduleDAG::listSchedulingTD, "list-td",
|
clEnumValN(listSchedulingTD, "list-td",
|
||||||
"Top-down list scheduler"),
|
"Top-down list scheduler"),
|
||||||
clEnumValEnd));
|
clEnumValEnd));
|
||||||
} // namespace
|
} // namespace
|
||||||
@ -3409,7 +3420,7 @@ void SelectionDAGISel::ScheduleAndEmitDAG(SelectionDAG &DAG) {
|
|||||||
|
|
||||||
switch (ISHeuristic) {
|
switch (ISHeuristic) {
|
||||||
default: assert(0 && "Unrecognized scheduling heuristic");
|
default: assert(0 && "Unrecognized scheduling heuristic");
|
||||||
case ScheduleDAG::defaultScheduling:
|
case defaultScheduling:
|
||||||
if (TLI.getSchedulingPreference() == TargetLowering::SchedulingForLatency)
|
if (TLI.getSchedulingPreference() == TargetLowering::SchedulingForLatency)
|
||||||
SL = createTDListDAGScheduler(DAG, BB, CreateTargetHazardRecognizer());
|
SL = createTDListDAGScheduler(DAG, BB, CreateTargetHazardRecognizer());
|
||||||
else {
|
else {
|
||||||
@ -3418,22 +3429,22 @@ void SelectionDAGISel::ScheduleAndEmitDAG(SelectionDAG &DAG) {
|
|||||||
SL = createBURRListDAGScheduler(DAG, BB);
|
SL = createBURRListDAGScheduler(DAG, BB);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ScheduleDAG::noScheduling:
|
case noScheduling:
|
||||||
SL = createBFS_DAGScheduler(DAG, BB);
|
SL = createBFS_DAGScheduler(DAG, BB);
|
||||||
break;
|
break;
|
||||||
case ScheduleDAG::simpleScheduling:
|
case simpleScheduling:
|
||||||
SL = createSimpleDAGScheduler(false, DAG, BB);
|
SL = createSimpleDAGScheduler(false, DAG, BB);
|
||||||
break;
|
break;
|
||||||
case ScheduleDAG::simpleNoItinScheduling:
|
case simpleNoItinScheduling:
|
||||||
SL = createSimpleDAGScheduler(true, DAG, BB);
|
SL = createSimpleDAGScheduler(true, DAG, BB);
|
||||||
break;
|
break;
|
||||||
case ScheduleDAG::listSchedulingBURR:
|
case listSchedulingBURR:
|
||||||
SL = createBURRListDAGScheduler(DAG, BB);
|
SL = createBURRListDAGScheduler(DAG, BB);
|
||||||
break;
|
break;
|
||||||
case ScheduleDAG::listSchedulingTDRR:
|
case listSchedulingTDRR:
|
||||||
SL = createTDRRListDAGScheduler(DAG, BB);
|
SL = createTDRRListDAGScheduler(DAG, BB);
|
||||||
break;
|
break;
|
||||||
case ScheduleDAG::listSchedulingTD:
|
case listSchedulingTD:
|
||||||
SL = createTDListDAGScheduler(DAG, BB, CreateTargetHazardRecognizer());
|
SL = createTDListDAGScheduler(DAG, BB, CreateTargetHazardRecognizer());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user