summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/GlobalMerge/used.ll
diff options
context:
space:
mode:
authorEli Friedman <efriedma@codeaurora.org>2018-07-25 22:03:35 +0000
committerEli Friedman <efriedma@codeaurora.org>2018-07-25 22:03:35 +0000
commitd6baff65f743816f121fc9cea3564d5ecea22a86 (patch)
tree0d282c40c168b338d7e448a0ceddc70f1acc2204 /llvm/test/Transforms/GlobalMerge/used.ll
parent5a0a83daaf6b5c22decee929a7cbb2af68937d50 (diff)
downloadbcm5719-llvm-d6baff65f743816f121fc9cea3564d5ecea22a86.tar.gz
bcm5719-llvm-d6baff65f743816f121fc9cea3564d5ecea22a86.zip
[GlobalMerge] Handle llvm.compiler.used correctly.
Reuse the handling for llvm.used, and don't transform such globals. Fixes a failure on the asan buildbot caused by my previous commit. llvm-svn: 337973
Diffstat (limited to 'llvm/test/Transforms/GlobalMerge/used.ll')
-rw-r--r--llvm/test/Transforms/GlobalMerge/used.ll29
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/Transforms/GlobalMerge/used.ll b/llvm/test/Transforms/GlobalMerge/used.ll
new file mode 100644
index 00000000000..0cb29e08a6b
--- /dev/null
+++ b/llvm/test/Transforms/GlobalMerge/used.ll
@@ -0,0 +1,29 @@
+; RUN: opt -global-merge -global-merge-max-offset=100 -S -o - %s | FileCheck %s
+
+target datalayout = "e-p:64:64"
+target triple = "x86_64-unknown-linux-gnu"
+
+; CHECK: @_MergedGlobals = private global <{ i32, i32 }> <{ i32 3, i32 3 }>, align 4
+
+@a = internal global i32 1
+
+@b = internal global i32 2
+
+@c = internal global i32 3
+
+@d = internal global i32 3
+
+@llvm.used = appending global [1 x i8*] [i8* bitcast (i32* @a to i8*)], section "llvm.metadata"
+@llvm.compiler.used = appending global [1 x i8*] [i8* bitcast (i32* @b to i8*)], section "llvm.metadata"
+
+define void @use() {
+ ; CHECK: load i32, i32* @a
+ %x = load i32, i32* @a
+ ; CHECK: load i32, i32* @b
+ %y = load i32, i32* @b
+ ; CHECK: load i32, i32* getelementptr inbounds (<{ i32, i32 }>, <{ i32, i32 }>* @_MergedGlobals, i32 0, i32 0)
+ %z1 = load i32, i32* @c
+ ; CHECK: load i32, i32* getelementptr inbounds (<{ i32, i32 }>, <{ i32, i32 }>* @_MergedGlobals, i32 0, i32 1)
+ %z2 = load i32, i32* @d
+ ret void
+}
OpenPOWER on IntegriCloud