New testcase for the deadreturnvalue deletion extension to -deadargelim
authorChris Lattner <sabre@nondot.org>
Wed, 22 Oct 2003 22:33:59 +0000 (22:33 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 22 Oct 2003 22:33:59 +0000 (22:33 +0000)
llvm-svn: 9389

llvm/test/Regression/Transforms/DeadArgElim/deadretval.ll [new file with mode: 0644]
llvm/test/Regression/Transforms/DeadArgElim/deadretval2.ll [new file with mode: 0644]

diff --git a/llvm/test/Regression/Transforms/DeadArgElim/deadretval.ll b/llvm/test/Regression/Transforms/DeadArgElim/deadretval.ll
new file mode 100644 (file)
index 0000000..33b4bd7
--- /dev/null
@@ -0,0 +1,19 @@
+; RUN: llvm-as < %s | opt -deadargelim | llvm-dis | not grep DEAD
+
+implementation
+
+internal int %test(int %DEADARG) {  ; Dead arg only used by dead retval
+       ret int %DEADARG
+}
+
+int %test2(int %A) {
+       %DEAD = call int %test(int %A)
+       ret int 123
+}
+
+int %test3() {
+       %X = call int %test2(int 3232)
+       %Y = add int %X, -123
+       ret int %Y
+}
+
diff --git a/llvm/test/Regression/Transforms/DeadArgElim/deadretval2.ll b/llvm/test/Regression/Transforms/DeadArgElim/deadretval2.ll
new file mode 100644 (file)
index 0000000..2596fa6
--- /dev/null
@@ -0,0 +1,36 @@
+; RUN: llvm-as < %s | opt -deadargelim -die | llvm-dis | not grep DEAD
+
+%P = external global int 
+
+implementation
+
+
+internal int %test(int %DEADARG) {  ; Dead arg only used by dead retval
+        ret int %DEADARG
+}
+
+internal int %test2(int %DEADARG) {
+       %DEADRETVAL = call int %test(int %DEADARG)
+       ret int %DEADRETVAL
+}
+
+void %test3(int %X) {
+       %DEADRETVAL = call int %test2(int %X)
+       ret void
+}
+
+internal int %foo() {
+       %DEAD = load int* %P
+       ret int %DEAD
+}
+
+internal int %id(int %X) {
+       ret int %X
+}
+
+void %test4() {
+       %DEAD = call int %foo()
+       %DEAD2 = call int %id(int %DEAD)
+       ret void
+}
+