[ARM] Dynamic stack alignment for 16-bit Thumb
authorMomchil Velikov <momchil.velikov@arm.com>
Sun, 22 Oct 2017 11:56:35 +0000 (11:56 +0000)
committerMomchil Velikov <momchil.velikov@arm.com>
Sun, 22 Oct 2017 11:56:35 +0000 (11:56 +0000)
commitd6a4ab3d4917c4e8efc7bae806db5599c7f42f7e
treee0c8fbc0fa3459271b330861215aad7ffd7bc90b
parent92d5ce3bd43ff480e5baea99a1dd8b0b8150f675
[ARM] Dynamic stack alignment for 16-bit Thumb

This patch implements dynamic stack (re-)alignment for 16-bit Thumb. When
targeting processors, which support only the 16-bit Thumb instruction set
the compiler ignores the alignment attributes of automatic variables and may
silently generate incorrect code.

Differential revision: https://reviews.llvm.org/D38143

llvm-svn: 316289
llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
llvm/lib/Target/ARM/ARMFrameLowering.cpp
llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
llvm/test/CodeGen/ARM/thumb1_return_sequence.ll
llvm/test/CodeGen/Thumb/large-stack.ll
llvm/test/CodeGen/Thumb/long.ll