diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-05 00:26:57 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-05 00:26:57 +0000 |
commit | d110e2a83fd2f0ba6e5b146ee83bddea722abe2a (patch) | |
tree | dd6eb92e9e7bf94a25af0d5fa34ae2b1c729d6b0 /llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp | |
parent | 9cb477db251b73ca16b199ba5d0483b1c9f76541 (diff) | |
download | bcm5719-llvm-d110e2a83fd2f0ba6e5b146ee83bddea722abe2a.tar.gz bcm5719-llvm-d110e2a83fd2f0ba6e5b146ee83bddea722abe2a.zip |
Reapply r146997, "Heed spill slot alignment on ARM."
Now that canRealignStack() understands frozen reserved registers, it is
safe to use it for aligned spill instructions.
It will only return true if the registers reserved at the beginning of
register allocation allow for dynamic stack realignment.
<rdar://problem/10625436>
llvm-svn: 147579
Diffstat (limited to 'llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp index 9f46ce9a17d..ed7ac276efd 100644 --- a/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -557,7 +557,7 @@ needsStackRealignment(const MachineFunction &MF) const { const MachineFrameInfo *MFI = MF.getFrameInfo(); const Function *F = MF.getFunction(); unsigned StackAlign = MF.getTarget().getFrameLowering()->getStackAlignment(); - bool requiresRealignment = ((MFI->getLocalFrameMaxAlign() > StackAlign) || + bool requiresRealignment = ((MFI->getMaxAlignment() > StackAlign) || F->hasFnAttr(Attribute::StackAlignment)); return requiresRealignment && canRealignStack(MF); |