- Allow target to specify when is register pressure "too high". In most cases,
authorEvan Cheng <evan.cheng@apple.com>
Fri, 23 Jul 2010 22:39:59 +0000 (22:39 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 23 Jul 2010 22:39:59 +0000 (22:39 +0000)
commit3144687df78731ac4ddbc716a24b951678a73f57
treec1c0c927d6d01408a025922187ccdd674b466718
parentf64a7d49a0cdc8587f5b79bb2ac7be5fe56c1746
- Allow target to specify when is register pressure "too high". In most cases,
  it's too late to start backing off aggressive latency scheduling when most
  of the registers are in use so the threshold should be a bit tighter.
- Correctly handle live out's and extract_subreg etc.
- Enable register pressure aware scheduling by default for hybrid scheduler.
  For ARM, this is almost always a win on # of instructions. It's runtime
  neutral for most of the tests. But for some kernels with high register
  pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by
  54 and sped up by 20%.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109279 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetLowering.h
lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h
test/CodeGen/ARM/lsr-on-unrolled-loops.ll