diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2012-06-14 22:48:13 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2012-06-14 22:48:13 +0000 |
| commit | def1b09be283f4318ee2488ae7e4f492bda400a0 (patch) | |
| tree | 97a8301719b26158013e232d89b7cbd4818d1998 /llvm/test/Transforms | |
| parent | 8bbce768d8670eb4aaef67dfaf18caa435ba0698 (diff) | |
| download | bcm5719-llvm-def1b09be283f4318ee2488ae7e4f492bda400a0.tar.gz bcm5719-llvm-def1b09be283f4318ee2488ae7e4f492bda400a0.zip | |
Implement the isSafeToDiscardIfUnused predicate and use it in globalopt and
globaldce. Globaldce was already removing linkonce globals, but globalopt was
not.
llvm-svn: 158476
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/GlobalOpt/deadglobal.ll | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/llvm/test/Transforms/GlobalOpt/deadglobal.ll b/llvm/test/Transforms/GlobalOpt/deadglobal.ll index c8d8e7674d6..cad5a91488a 100644 --- a/llvm/test/Transforms/GlobalOpt/deadglobal.ll +++ b/llvm/test/Transforms/GlobalOpt/deadglobal.ll @@ -1,9 +1,25 @@ -; RUN: opt < %s -globalopt -S | not grep internal +; RUN: opt < %s -globalopt -S | FileCheck %s -@G = internal global i32 123 ; <i32*> [#uses=1] +@G1 = internal global i32 123 ; <i32*> [#uses=1] -define void @foo() { - store i32 1, i32* @G +; CHECK-NOT: @G1 +; CHECK: @G2 +; CHECK-NOT: @G3 + +define void @foo1() { +; CHECK: define void @foo +; CHECK-NEXT: ret + store i32 1, i32* @G1 + ret void +} + +@G2 = linkonce_odr constant i32 42 + +define void @foo2() { +; CHECK: define void @foo2 +; CHECK-NEXT: store + store i32 1, i32* @G2 ret void } +@G3 = linkonce_odr constant i32 42 |

