diff options
Diffstat (limited to 'test/Transforms/GlobalDCE')
-rw-r--r-- | test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll | 6 | ||||
-rw-r--r-- | test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll | 2 | ||||
-rw-r--r-- | test/Transforms/GlobalDCE/deadblockaddr.ll | 16 | ||||
-rw-r--r-- | test/Transforms/GlobalDCE/pr20981.ll | 17 |
4 files changed, 37 insertions, 4 deletions
diff --git a/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll b/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll index 0bdced5..584f0bf 100644 --- a/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll +++ b/test/Transforms/GlobalDCE/2009-01-05-DeadAliases.ll @@ -5,14 +5,14 @@ @A = global i32 0 ; CHECK: @A = global i32 0 -@D = alias internal i32* @A +@D = internal alias i32* @A ; DEAD-NOT: @D @L1 = alias i32* @A ; CHECK: @L1 = alias i32* @A -@L2 = alias internal i32* @L1 -; CHECK: @L2 = alias internal i32* @L1 +@L2 = internal alias i32* @L1 +; CHECK: @L2 = internal alias i32* @L1 @L3 = alias i32* @L2 ; CHECK: @L3 = alias i32* @L2 diff --git a/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll b/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll index 68933c6..5fb4444 100644 --- a/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll +++ b/test/Transforms/GlobalDCE/2009-02-17-AliasUsesAliasee.ll @@ -1,4 +1,4 @@ ; RUN: opt < %s -globaldce -@A = alias internal void ()* @F +@A = internal alias void ()* @F define internal void @F() { ret void } diff --git a/test/Transforms/GlobalDCE/deadblockaddr.ll b/test/Transforms/GlobalDCE/deadblockaddr.ll new file mode 100644 index 0000000..1ec5994 --- /dev/null +++ b/test/Transforms/GlobalDCE/deadblockaddr.ll @@ -0,0 +1,16 @@ +; RUN: opt -globaldce -simplifycfg -S < %s | FileCheck %s + +; Tests whether globaldce does the right cleanup while removing @bar +; so that a dead BlockAddress reference to foo won't prevent other passes +; to work properly, e.g. simplifycfg +@bar = internal unnamed_addr constant i8* blockaddress(@foo, %L1) + +; CHECK-LABEL: foo +; CHECK-NOT: br label %L1 +; CHECK: ret void +define void @foo() { +entry: + br label %L1 +L1: + ret void +} diff --git a/test/Transforms/GlobalDCE/pr20981.ll b/test/Transforms/GlobalDCE/pr20981.ll new file mode 100644 index 0000000..92d2840 --- /dev/null +++ b/test/Transforms/GlobalDCE/pr20981.ll @@ -0,0 +1,17 @@ +; RUN: opt < %s -globaldce -S | FileCheck %s + +$c1 = comdat any +; CHECK: $c1 = comdat any + +@a1 = linkonce_odr alias void ()* @f1 +; CHECK: @a1 = linkonce_odr alias void ()* @f1 + +define linkonce_odr void @f1() comdat $c1 { + ret void +} +; CHECK: define linkonce_odr void @f1() comdat $c1 + +define void @g() { + call void @f1() + ret void +} |