diff options
| author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-05-17 15:14:34 +0000 |
|---|---|---|
| committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2013-05-17 15:14:34 +0000 |
| commit | 641b0b5a21b7c5a8c7cc0bf90ff5bc53de02d68a (patch) | |
| tree | 162eb2e2b3913e0c93bebd4a0e91ef9f195a8ba9 /llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll | |
| parent | dd3c583211ccddf18cde7f42d7c5b4159e51a41f (diff) | |
| download | bcm5719-llvm-641b0b5a21b7c5a8c7cc0bf90ff5bc53de02d68a.tar.gz bcm5719-llvm-641b0b5a21b7c5a8c7cc0bf90ff5bc53de02d68a.zip | |
[Sparc] Implements hasReservedCallFrame and hasFP.
This is to generate correct framesetup code when the function
has variable sized allocas.
llvm-svn: 182108
Diffstat (limited to 'llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll')
| -rw-r--r-- | llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll b/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll new file mode 100644 index 00000000000..9e9e8216a8e --- /dev/null +++ b/llvm/test/CodeGen/SPARC/2013-05-17-CallFrame.ll @@ -0,0 +1,16 @@ +; RUN: llc -march=sparc < %s | FileCheck %s + +; CHECK: variable_alloca_with_adj_call_stack +; CHECK: save %sp, -96, %sp +; CHECK: add %sp, -16, %sp +; CHECK: call foo +; CHECK: add %sp, 16, %sp +define void @variable_alloca_with_adj_call_stack(i32 %num) { +entry: + %0 = alloca i8, i32 %num, align 8 + call void @foo(i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0, i8* %0) + ret void +} + + +declare void @foo(i8* , i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*); |

