diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-01-16 05:14:33 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-01-16 05:14:33 +0000 |
commit | df55fea807835bc23a2879fbf7f7a8bd53de8256 (patch) | |
tree | d2eda26967896928643a0a01225cff6acadd11e2 /test | |
parent | 9922ccf4b483ce37524047879f9b2f9bb73e3ccb (diff) | |
download | external_llvm-df55fea807835bc23a2879fbf7f7a8bd53de8256.zip external_llvm-df55fea807835bc23a2879fbf7f7a8bd53de8256.tar.gz external_llvm-df55fea807835bc23a2879fbf7f7a8bd53de8256.tar.bz2 |
Spill R4 if it's going to be used to restore SP from FP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123567 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/Thumb/2011-EpilogueBug.ll | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/CodeGen/Thumb/2011-EpilogueBug.ll b/test/CodeGen/Thumb/2011-EpilogueBug.ll new file mode 100644 index 0000000..16789e6 --- /dev/null +++ b/test/CodeGen/Thumb/2011-EpilogueBug.ll @@ -0,0 +1,17 @@ +; RUN: llc -mtriple=thumbv6-apple-darwin < %s | FileCheck %s +; r8869722 + +%struct.state = type { i32, %struct.info*, float**, i32, i32, i32, i32, i32, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i8* } +%struct.info = type { i32, i32, i32, i32, i32, i32, i32, i8* } + +define void @t1(%struct.state* %v) { +; CHECK: push {r4 + %tmp6 = load i32* null + %tmp8 = alloca float, i32 %tmp6 + store i32 1, i32* null + br label %return + +return: ; preds = %0 +; CHECK: mov sp, r4 + ret void +} |