llvm.org GIT mirror llvm / 9727555 test / Transforms / TailCallElim / dont-tce-tail-marked-call.ll
9727555

Tree @9727555 (Download .tar.gz)

dont-tce-tail-marked-call.ll @9727555raw · history · blame

; RUN: llvm-as < %s | opt -tailcallelim | llvm-dis | grep 'call int %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
}