Mark most PPC register classes to avoid write-after-write.
authorHal Finkel <hfinkel@anl.gov>
Tue, 19 Jun 2012 13:57:17 +0000 (13:57 +0000)
committerHal Finkel <hfinkel@anl.gov>
Tue, 19 Jun 2012 13:57:17 +0000 (13:57 +0000)
commitfe5b65827f20a61bef817c6421f32b7e05d65caf
treee10fe34f52987b9afca2a046f75fe4cc85a519f6
parent66ec4e6653fe923160d6f03a4989d5e8b7f949b3
Mark most PPC register classes to avoid write-after-write.

For processors with the G5-like instruction-grouping scheme, this helps avoid
early group termination due to a write-after-write dependency within the group.
It should also help on pipelined embedded cores.

On POWER7, over the test suite, this gives an average 0.5% speedup. The largest
speedups are:

SingleSource/Benchmarks/Stanford/Quicksort - 33%
MultiSource/Applications/d/make_dparser - 21%
MultiSource/Benchmarks/FreeBench/analyzer/analyzer - 12%
MultiSource/Benchmarks/MiBench/telecomm-FFT/telecomm-fft - 12%

Largest slowdowns:

SingleSource/Benchmarks/Stanford/Bubblesort - 23%
MultiSource/Benchmarks/Prolangs-C++/city/city - 21%
MultiSource/Benchmarks/BitBench/uuencode/uuencode - 16%
MultiSource/Benchmarks/mediabench/mpeg2/mpeg2dec/mpeg2decode - 13%

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158719 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/PowerPC/PPCRegisterInfo.cpp
lib/Target/PowerPC/PPCRegisterInfo.h