diff options
author | Evan Cheng <evan.cheng@apple.com> | 2012-01-12 18:27:52 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2012-01-12 18:27:52 +0000 |
commit | 09cc429cb1e68533f1e3e55e43233e6099344c20 (patch) | |
tree | 1a8a6d74a0d7dacf866c22d3ced80935f3f4c46d | |
parent | 4a6e778aae31ab795255a880e0820d1290431060 (diff) | |
download | bcm5719-llvm-09cc429cb1e68533f1e3e55e43233e6099344c20.tar.gz bcm5719-llvm-09cc429cb1e68533f1e3e55e43233e6099344c20.zip |
Allow targets to select source order pre-RA scheduler.
llvm-svn: 148033
-rw-r--r-- | llvm/include/llvm/Target/TargetLowering.h | 1 | ||||
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/llvm/include/llvm/Target/TargetLowering.h b/llvm/include/llvm/Target/TargetLowering.h index 456966b5de1..5c891e940ed 100644 --- a/llvm/include/llvm/Target/TargetLowering.h +++ b/llvm/include/llvm/Target/TargetLowering.h @@ -56,6 +56,7 @@ namespace llvm { 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. diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index bfb6dfa0b17..9f3969959b6 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -218,7 +218,8 @@ namespace llvm { CodeGenOpt::Level OptLevel) { const TargetLowering &TLI = IS->getTargetLowering(); - if (OptLevel == CodeGenOpt::None) + if (OptLevel == CodeGenOpt::None || + TLI.getSchedulingPreference() == Sched::Source) return createSourceListDAGScheduler(IS, OptLevel); if (TLI.getSchedulingPreference() == Sched::RegPressure) return createBURRListDAGScheduler(IS, OptLevel); |