diff options
author | Anders Carlsson <andersca@mac.com> | 2011-01-16 21:25:33 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2011-01-16 21:25:33 +0000 |
commit | 0599c6bb3c9c3817600021f31f16eb49e57ea9d8 (patch) | |
tree | b1bf71643235e86050a7e935973849e5d8ab7dde /test/Transforms/DeadArgElim/deadexternal.ll | |
parent | 3c98e14bc9b747b66c048b008f371ac03323c913 (diff) | |
download | llvm-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.ll | 28 |
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 +} |