diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-11-06 23:05:24 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-11-06 23:05:24 +0000 |
commit | e7bd51980a1341fb60322e5922cfcc0c9b92b165 (patch) | |
tree | d130945cf2830428d7948661aa80b528f1422c87 /lib/Target/ARM/ARMBaseRegisterInfo.cpp | |
parent | 7979b24e5cd4a99db6af3fcd66d9f514f02d11db (diff) | |
download | external_llvm-e7bd51980a1341fb60322e5922cfcc0c9b92b165.zip external_llvm-e7bd51980a1341fb60322e5922cfcc0c9b92b165.tar.gz external_llvm-e7bd51980a1341fb60322e5922cfcc0c9b92b165.tar.bz2 |
Mark the Int_eh_sjlj_dispatchsetup pseudo instruction as clobbering all
registers. Previously, the register we being marked as implicitly defined, but
not killed. In some cases this would cause the register scavenger to spill a
dead register.
Also, use an empty register mask to simplify the logic and to reduce the memory
footprint.
rdar://12592448
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167499 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMBaseRegisterInfo.cpp')
-rw-r--r-- | lib/Target/ARM/ARMBaseRegisterInfo.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp index baf6511..e5b300f 100644 --- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -84,6 +84,11 @@ ARMBaseRegisterInfo::getCallPreservedMask(CallingConv::ID) const { ? CSR_iOS_RegMask : CSR_AAPCS_RegMask; } +const uint32_t* +ARMBaseRegisterInfo::getNoPreservedMask() const { + return CSR_NoRegs_RegMask; +} + BitVector ARMBaseRegisterInfo:: getReservedRegs(const MachineFunction &MF) const { const TargetFrameLowering *TFI = MF.getTarget().getFrameLowering(); |