summaryrefslogtreecommitdiff
path: root/test/Transforms/DeadArgElim/deadexternal.ll
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2011-01-16 21:25:33 +0000
committerAnders Carlsson <andersca@mac.com>2011-01-16 21:25:33 +0000
commit0599c6bb3c9c3817600021f31f16eb49e57ea9d8 (patch)
treeb1bf71643235e86050a7e935973849e5d8ab7dde /test/Transforms/DeadArgElim/deadexternal.ll
parent3c98e14bc9b747b66c048b008f371ac03323c913 (diff)
downloadllvm-0599c6bb3c9c3817600021f31f16eb49e57ea9d8.tar.gz
llvm-0599c6bb3c9c3817600021f31f16eb49e57ea9d8.tar.bz2
llvm-0599c6bb3c9c3817600021f31f16eb49e57ea9d8.tar.xz
Teach DAE to look for functions whose arguments are unused, and change all callers to pass in an undefvalue instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123596 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/DeadArgElim/deadexternal.ll')
-rw-r--r--test/Transforms/DeadArgElim/deadexternal.ll28
1 files changed, 27 insertions, 1 deletions
diff --git a/test/Transforms/DeadArgElim/deadexternal.ll b/test/Transforms/DeadArgElim/deadexternal.ll
index 7256b93af1..5a80aba6e2 100644
--- a/test/Transforms/DeadArgElim/deadexternal.ll
+++ b/test/Transforms/DeadArgElim/deadexternal.ll
@@ -1,5 +1,4 @@
; RUN: opt -deadargelim -S %s | FileCheck %s
-; XFAIL: *
define void @test(i32) {
ret void
@@ -11,3 +10,30 @@ define void @foo() {
; CHECK: @foo
; CHECK: i32 undef
}
+
+define void @f(i32 %X) {
+entry:
+ tail call void @sideeffect() nounwind
+ ret void
+}
+
+declare void @sideeffect()
+
+define void @g(i32 %n) {
+entry:
+ %add = add nsw i32 %n, 1
+; CHECK: tail call void @f(i32 undef)
+ tail call void @f(i32 %add)
+ ret void
+}
+
+define void @h() {
+entry:
+ %i = alloca i32, align 4
+ volatile store i32 10, i32* %i, align 4
+; CHECK: %tmp = volatile load i32* %i, align 4
+; CHECK-next: call void @f(i32 undef)
+ %tmp = volatile load i32* %i, align 4
+ call void @f(i32 %tmp)
+ ret void
+}