llvm.org GIT mirror llvm / release_23 test / Transforms / TailCallElim / move_alloca_for_tail_call.ll
release_23

Tree @release_23 (Download .tar.gz)

move_alloca_for_tail_call.ll @release_23raw · history · blame

; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | \
; RUN:    %prcontext alloca 1 | grep {i32 @foo}

declare void @bar(i32*)

define i32 @foo() {
	%A = alloca i32		; <i32*> [#uses=2]
	store i32 17, i32* %A
	call void @bar( i32* %A )
	%X = tail call i32 @foo( )		; <i32> [#uses=1]
	ret i32 %X
}