diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-12-02 07:38:06 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-12-02 07:38:06 +0000 |
commit | 1b26fdbf1f01e90b803cc035b6b932cd95c76830 (patch) | |
tree | c9717538bdb0fd127cbdd8cba12633cb32552fa8 /lib/Target/ARM/ARMFrameLowering.cpp | |
parent | 3d238de4d54eb0b16afd96a57f49f92b2f7748e0 (diff) | |
download | external_llvm-1b26fdbf1f01e90b803cc035b6b932cd95c76830.zip external_llvm-1b26fdbf1f01e90b803cc035b6b932cd95c76830.tar.gz external_llvm-1b26fdbf1f01e90b803cc035b6b932cd95c76830.tar.bz2 |
Merging r196046:
------------------------------------------------------------------------
r196046 | tnorthover | 2013-12-01 06:16:24 -0800 (Sun, 01 Dec 2013) | 8 lines
ARM: fix bug in -Oz stack adjustment folding
Previously, we clobbered callee-saved registers when folding an "add
sp, #N" into a "pop {rD, ...}" instruction. This change checks whether
a register we're going to add to the "pop" could actually be live
outside the function before doing so and should fix the issue.
This should fix PR18081.
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@196074 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMFrameLowering.cpp')
-rw-r--r-- | lib/Target/ARM/ARMFrameLowering.cpp | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/lib/Target/ARM/ARMFrameLowering.cpp b/lib/Target/ARM/ARMFrameLowering.cpp index 7b02803..3e72d36 100644 --- a/lib/Target/ARM/ARMFrameLowering.cpp +++ b/lib/Target/ARM/ARMFrameLowering.cpp @@ -82,13 +82,6 @@ ARMFrameLowering::canSimplifyCallFramePseudos(const MachineFunction &MF) const { return hasReservedCallFrame(MF) || MF.getFrameInfo()->hasVarSizedObjects(); } -static bool isCalleeSavedRegister(unsigned Reg, const uint16_t *CSRegs) { - for (unsigned i = 0; CSRegs[i]; ++i) - if (Reg == CSRegs[i]) - return true; - return false; -} - static bool isCSRestore(MachineInstr *MI, const ARMBaseInstrInfo &TII, const uint16_t *CSRegs) { |