New testcases for PR615
authorChris Lattner <sabre@nondot.org>
Sun, 7 Aug 2005 04:25:39 +0000 (04:25 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 7 Aug 2005 04:25:39 +0000 (04:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22689 91177308-0d34-0410-b5e6-96231b3b80d8

test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll [new file with mode: 0644]
test/Transforms/TailCallElim/move_alloca_for_tail_call.ll [new file with mode: 0644]

diff --git a/test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll b/test/Transforms/TailCallElim/dont-tce-tail-marked-call.ll
new file mode 100644 (file)
index 0000000..d038d82
--- /dev/null
@@ -0,0 +1,11 @@
+; 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
+}
diff --git a/test/Transforms/TailCallElim/move_alloca_for_tail_call.ll b/test/Transforms/TailCallElim/move_alloca_for_tail_call.ll
new file mode 100644 (file)
index 0000000..1428e05
--- /dev/null
@@ -0,0 +1,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
+}