Use virtual base registers on PPC
authorHal Finkel <hfinkel@anl.gov>
Tue, 9 Apr 2013 17:27:09 +0000 (17:27 +0000)
committerHal Finkel <hfinkel@anl.gov>
Tue, 9 Apr 2013 17:27:09 +0000 (17:27 +0000)
commitb5899d57741830a618ce9a26bc560c6d6c2d4646
tree2e81e7fcaa77666b1ca45a5151a735d50a3945be
parent059825b0f86458dfbf1e286076bea43e59756412
Use virtual base registers on PPC

On PowerPC, non-vector loads and stores have r+i forms; however, in functions
with large stack frames these were not being used to access slots far from the
stack pointer because such slots were out of range for the signed 16-bit
immediate offset field. This increases register pressure because we need a
separate register for each offset (when the r+r form is used). By enabling
virtual base registers, we can deal with large stack frames without unduly
increasing register pressure.

llvm-svn: 179105
llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
llvm/lib/Target/PowerPC/PPCRegisterInfo.h
llvm/test/CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll
llvm/test/CodeGen/PowerPC/lsa.ll [new file with mode: 0644]