mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
[SelectionDAG] Make fast and linearize visible by clang -pre-RA-sched
ScheduleDAGFast.cpp is compiled to object file, but the ScheduleDAGFast object file isn't linked into clang executable file as no symbol is referred by outside. Add calling to createXxx of ScheduleDAGFast.cpp, then the ScheduleDAGFast object file will be linked into clang executable file. The static RegisterScheduler will register scheduler fast and linearize at clang boot time. Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D101601
This commit is contained in:
parent
796d22443b
commit
f9d8052498
@ -94,14 +94,16 @@ class Value;
|
||||
|
||||
namespace Sched {
|
||||
|
||||
enum Preference {
|
||||
None, // No preference
|
||||
Source, // Follow source order.
|
||||
RegPressure, // Scheduling for lowest register pressure.
|
||||
Hybrid, // Scheduling for both latency and register pressure.
|
||||
ILP, // Scheduling for ILP in low register pressure mode.
|
||||
VLIW // Scheduling for VLIW targets.
|
||||
};
|
||||
enum Preference {
|
||||
None, // No preference
|
||||
Source, // Follow source order.
|
||||
RegPressure, // Scheduling for lowest register pressure.
|
||||
Hybrid, // Scheduling for both latency and register pressure.
|
||||
ILP, // Scheduling for ILP in low register pressure mode.
|
||||
VLIW, // Scheduling for VLIW targets.
|
||||
Fast, // Fast suboptimal list scheduling
|
||||
Linearize // Linearize DAG, no scheduling
|
||||
};
|
||||
|
||||
} // end namespace Sched
|
||||
|
||||
|
@ -270,6 +270,10 @@ namespace llvm {
|
||||
return createHybridListDAGScheduler(IS, OptLevel);
|
||||
if (TLI->getSchedulingPreference() == Sched::VLIW)
|
||||
return createVLIWDAGScheduler(IS, OptLevel);
|
||||
if (TLI->getSchedulingPreference() == Sched::Fast)
|
||||
return createFastDAGScheduler(IS, OptLevel);
|
||||
if (TLI->getSchedulingPreference() == Sched::Linearize)
|
||||
return createDAGLinearizer(IS, OptLevel);
|
||||
assert(TLI->getSchedulingPreference() == Sched::ILP &&
|
||||
"Unknown sched type!");
|
||||
return createILPListDAGScheduler(IS, OptLevel);
|
||||
|
Loading…
Reference in New Issue
Block a user