diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2010-07-24 00:39:05 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2010-07-24 00:39:05 +0000 |
| commit | 37b740c4bfbbbdcf1b88fe2fc5eeaef1a3390700 (patch) | |
| tree | f904cf94fcb05e176dac04012da8c1ff956b38c9 /llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | |
| parent | 6481ef1f9c82809492ebadd23329d9967bdd3750 (diff) | |
| download | bcm5719-llvm-37b740c4bfbbbdcf1b88fe2fc5eeaef1a3390700.tar.gz bcm5719-llvm-37b740c4bfbbbdcf1b88fe2fc5eeaef1a3390700.zip | |
Add an ILP scheduler. This is a register pressure aware scheduler that's
appropriate for targets without detailed instruction iterineries.
The scheduler schedules for increased instruction level parallelism in
low register pressure situation; it schedules to reduce register pressure
when the register pressure becomes high.
On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2
by 16%.
llvm-svn: 109300
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 61b2c065a4f..1731be2be95 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -137,9 +137,11 @@ namespace llvm { return createTDListDAGScheduler(IS, OptLevel); if (TLI.getSchedulingPreference() == Sched::RegPressure) return createBURRListDAGScheduler(IS, OptLevel); - assert(TLI.getSchedulingPreference() == Sched::Hybrid && + if (TLI.getSchedulingPreference() == Sched::Hybrid) + return createHybridListDAGScheduler(IS, OptLevel); + assert(TLI.getSchedulingPreference() == Sched::ILP && "Unknown sched type!"); - return createHybridListDAGScheduler(IS, OptLevel); + return createILPListDAGScheduler(IS, OptLevel); } } |

