mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
e9061eb73e
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> llvm-svn: 242714
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
|