diff options
author | Jim Grosbach <grosbach@apple.com> | 2010-09-02 22:29:01 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2010-09-02 22:29:01 +0000 |
commit | 1755b3964f931bdd6fa9b4c0138f666ccfa12aca (patch) | |
tree | da44cb7a52f81004cbdf4663047b5e49f6375afe /test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll | |
parent | bc54ee9a77b496ba1d8dbbfc6bacd9b20066b31e (diff) | |
download | llvm-1755b3964f931bdd6fa9b4c0138f666ccfa12aca.tar.gz llvm-1755b3964f931bdd6fa9b4c0138f666ccfa12aca.tar.bz2 llvm-1755b3964f931bdd6fa9b4c0138f666ccfa12aca.tar.xz |
For ARM stack frames that utilize variable sized objects and have either
large local stack areas or require dynamic stack realignment, allocate a
base register via which to access the local frame. This allows efficient
access to frame indices not accessible via the FP (either due to being out
of range or due to dynamic realignment) or the SP (due to variable sized
object allocation). In particular, this greatly improves efficiency of access
to spill slots in Thumb functions which contain VLAs.
rdar://7352504
rdar://8374540
rdar://8355680
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112883 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll')
-rw-r--r-- | test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll b/test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll index e0946c7ea3..2246de35e0 100644 --- a/test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll +++ b/test/CodeGen/Thumb2/2010-04-15-DynAllocBug.ll @@ -7,19 +7,12 @@ define void @t() nounwind ssp { entry: ; CHECK: t: -; CHECK: push {r4, r7} -; CHECK: mov r0, sp -; CHECK: add r7, sp, #4 -; CHECK: bic r0, r0, #7 + %size = mul i32 8, 2 ; CHECK: subs r0, #16 ; CHECK: mov sp, r0 -; CHECK: mov r0, sp -; CHECK: bic r0, r0, #7 + %vla_a = alloca i8, i32 %size, align 8 ; CHECK: subs r0, #16 ; CHECK: mov sp, r0 - - %size = mul i32 8, 2 - %vla_a = alloca i8, i32 %size, align 8 %vla_b = alloca i8, i32 %size, align 8 unreachable } |