diff options
author | Cameron Zwarich <zwarich@apple.com> | 2011-03-07 21:56:36 +0000 |
---|---|---|
committer | Cameron Zwarich <zwarich@apple.com> | 2011-03-07 21:56:36 +0000 |
commit | be2119e8e2bc7006cfd638a24367acbfda625d16 (patch) | |
tree | f6b612a7b38e222360664235d92655da3ab285d1 /lib/Target/X86/X86RegisterInfo.cpp | |
parent | e390b3245f00627eb5c5bde5eb4ff6b6ff7c752d (diff) | |
download | external_llvm-be2119e8e2bc7006cfd638a24367acbfda625d16.zip external_llvm-be2119e8e2bc7006cfd638a24367acbfda625d16.tar.gz external_llvm-be2119e8e2bc7006cfd638a24367acbfda625d16.tar.bz2 |
Move getRegPressureLimit() from TargetLoweringInfo to TargetRegisterInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127175 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86RegisterInfo.cpp')
-rw-r--r-- | lib/Target/X86/X86RegisterInfo.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 2f6bd88..fe98cac 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -340,6 +340,26 @@ X86RegisterInfo::getCrossCopyRegClass(const TargetRegisterClass *RC) const { return NULL; } +unsigned +X86RegisterInfo::getRegPressureLimit(const TargetRegisterClass *RC, + MachineFunction &MF) const { + const TargetFrameLowering *TFI = MF.getTarget().getFrameLowering(); + + unsigned FPDiff = TFI->hasFP(MF) ? 1 : 0; + switch (RC->getID()) { + default: + return 0; + case X86::GR32RegClassID: + return 4 - FPDiff; + case X86::GR64RegClassID: + return 12 - FPDiff; + case X86::VR128RegClassID: + return TM.getSubtarget<X86Subtarget>().is64Bit() ? 10 : 4; + case X86::VR64RegClassID: + return 4; + } +} + const unsigned * X86RegisterInfo::getCalleeSavedRegs(const MachineFunction *MF) const { bool callsEHReturn = false; |