mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-17 00:46:42 +00:00
b2dab382ce
This is the first step toward supporting shrink-wrapping for this target. The changes could be summarized by these items: - Expand the tail-call return as part of the expand pseudo pass. - Get rid of the assumptions that the epilogue is the exit block: * Do not assume which registers are free in the epilogue. (This indirectly improve the lowering of the code for the segmented stacks, see the test cases.) * Take into account that the basic block can be empty. Related to <rdar://problem/20821730> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242714 91177308-0d34-0410-b5e6-96231b3b80d8
16 lines
365 B
LLVM
16 lines
365 B
LLVM
; RUN: llc < %s -mtriple=thumb-apple-darwin | FileCheck %s
|
|
; rdar://7268481
|
|
|
|
define void @t(i8* %a, ...) nounwind {
|
|
; CHECK-LABEL: t:
|
|
; CHECK: pop {[[POP_REG:r[0-3]]]}
|
|
; CHECK-NEXT: add sp, #12
|
|
; CHECK-NEXT: bx [[POP_REG]]
|
|
entry:
|
|
%a.addr = alloca i8, i32 4
|
|
call void @llvm.va_start(i8* %a.addr)
|
|
ret void
|
|
}
|
|
|
|
declare void @llvm.va_start(i8*) nounwind
|