diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-08-22 21:59:26 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-08-22 21:59:26 +0000 |
commit | 2d9bb65b3dee3d84a523f043b6059bce2a4a1032 (patch) | |
tree | a39fce08ce3ce54169beeb4149fc349c91e4fc5b /llvm/test/CodeGen/ARM/vararg_no_start.ll | |
parent | af74250ec00c8c324109e8513030e10b480c23a3 (diff) | |
download | bcm5719-llvm-2d9bb65b3dee3d84a523f043b6059bce2a4a1032.tar.gz bcm5719-llvm-2d9bb65b3dee3d84a523f043b6059bce2a4a1032.zip |
ARM / x86_64 varargs: Don't save regparms in prologue without va_start
There's no need to do this if the user doesn't call va_start. In the
future, we're going to have thunks that forward these register
parameters with musttail calls, and they won't need these spills for
handling va_start.
Most of the test suite changes are adding va_start calls to existing
tests to keep things working.
llvm-svn: 216294
Diffstat (limited to 'llvm/test/CodeGen/ARM/vararg_no_start.ll')
-rw-r--r-- | llvm/test/CodeGen/ARM/vararg_no_start.ll | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/vararg_no_start.ll b/llvm/test/CodeGen/ARM/vararg_no_start.ll new file mode 100644 index 00000000000..f9c8c1b7546 --- /dev/null +++ b/llvm/test/CodeGen/ARM/vararg_no_start.ll @@ -0,0 +1,10 @@ +; RUN: llc -mtriple=arm-darwin < %s | FileCheck %s +; RUN: llc -O0 -mtriple=arm-darwin < %s | FileCheck %s + +define void @foo(i8*, ...) { + ret void +} +; CHECK-LABEL: {{^_?}}foo: +; CHECK-NOT: str +; CHECK: {{bx lr|mov pc, lr}} +declare void @llvm.va_start(i8*) nounwind |