diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2011-11-22 16:21:04 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2011-11-22 16:21:04 +0000 |
| commit | 6f0ae783fec09e8d62c137f73f7682be808032c3 (patch) | |
| tree | c2c40fb0be837d7bc788690eedd12dc6f5fd2253 /llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp | |
| parent | 83c45926196f766f9004913963061d19aec42550 (diff) | |
| download | bcm5719-llvm-6f0ae783fec09e8d62c137f73f7682be808032c3.tar.gz bcm5719-llvm-6f0ae783fec09e8d62c137f73f7682be808032c3.zip | |
add basic PPC register-pressure feedback; adjust the vaarg test to match the new register-allocation pattern
llvm-svn: 145065
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp index 2e90b7a4086..3ba9260be97 100644 --- a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp +++ b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp @@ -273,6 +273,27 @@ BitVector PPCRegisterInfo::getReservedRegs(const MachineFunction &MF) const { return Reserved; } +unsigned +PPCRegisterInfo::getRegPressureLimit(const TargetRegisterClass *RC, + MachineFunction &MF) const { + const TargetFrameLowering *TFI = MF.getTarget().getFrameLowering(); + const unsigned DefaultSafety = 1; + + switch (RC->getID()) { + default: + return 0; + case PPC::G8RCRegClassID: + case PPC::GPRCRegClassID: { + unsigned FP = TFI->hasFP(MF) ? 1 : 0; + return 32 - FP - DefaultSafety; + } + case PPC::F8RCRegClassID: + case PPC::F4RCRegClassID: + case PPC::VRRCRegClassID: + return 32 - DefaultSafety; + } +} + //===----------------------------------------------------------------------===// // Stack Frame Processing methods //===----------------------------------------------------------------------===// |

