diff options
author | Evan Cheng <evan.cheng@apple.com> | 2012-10-17 19:39:36 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2012-10-17 19:39:36 +0000 |
commit | d4f759696d1bd0ba7c0e6eefd7ed8b556840419a (patch) | |
tree | 09795ccfb510bddee94b2ee730ed01279bbcc8a6 /include | |
parent | 9aa6e0a134358c681cc5918ec65b1ec9726b778e (diff) | |
download | external_llvm-d4f759696d1bd0ba7c0e6eefd7ed8b556840419a.zip external_llvm-d4f759696d1bd0ba7c0e6eefd7ed8b556840419a.tar.gz external_llvm-d4f759696d1bd0ba7c0e6eefd7ed8b556840419a.tar.bz2 |
Add a really faster pre-RA scheduler (-pre-RA-sched=linearize). It doesn't use
any scheduling heuristics nor does it build up any scheduling data structure
that other heuristics use. It essentially linearize by doing a DFA walk but
it does handle glues correctly.
IMPORTANT: it probably can't handle all the physical register dependencies so
it's not suitable for x86. It also doesn't deal with dbg_value nodes right now
so it's definitely is still WIP.
rdar://12474515
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166122 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/CodeGen/SchedulerRegistry.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/SchedulerRegistry.h b/include/llvm/CodeGen/SchedulerRegistry.h index a582b0c..836b73a 100644 --- a/include/llvm/CodeGen/SchedulerRegistry.h +++ b/include/llvm/CodeGen/SchedulerRegistry.h @@ -102,6 +102,11 @@ ScheduleDAGSDNodes *createVLIWDAGScheduler(SelectionDAGISel *IS, ScheduleDAGSDNodes *createDefaultScheduler(SelectionDAGISel *IS, CodeGenOpt::Level OptLevel); +/// createDAGLinearizer - This creates a "no-scheduling" scheduler which +/// linearize the DAG using topological order. +ScheduleDAGSDNodes *createDAGLinearizer(SelectionDAGISel *IS, + CodeGenOpt::Level OptLevel); + } // end namespace llvm #endif |