summaryrefslogtreecommitdiff
path: root/test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll
blob: 2a4cdcef76075801c109bc2c2ebb5935f90ccdba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
; RUN: llvm-upgrade < %s | llvm-as | opt -tailcallelim | llvm-dis | \
; RUN:    grep 'call i32 @foo'

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

  %X = tail call int %foo(uint %N)  ;; Cannot -tailcallelim this without increasing stack usage!
  ret int %X
}