summaryrefslogtreecommitdiff
path: root/test/Transforms/TailCallElim/move_alloca_for_tail_call.ll
blob: 1428e052705319019fd689207f8a4c3100e3b02f (plain)
1
2
3
4
5
6
7
8
9
10
11
; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | %prcontext alloca 1 | grep 'int %foo'

declare void %bar(int*)
int %foo() {
  %A = alloca int             ;; Should stay in entry block because of 'tail' marker
  store int 17, int* %A
  call void %bar(int* %A)

  %X = tail call int %foo()
  ret int %X
}