diff options
| author | Eli Friedman <efriedma@codeaurora.org> | 2018-07-25 22:03:35 +0000 |
|---|---|---|
| committer | Eli Friedman <efriedma@codeaurora.org> | 2018-07-25 22:03:35 +0000 |
| commit | d6baff65f743816f121fc9cea3564d5ecea22a86 (patch) | |
| tree | 0d282c40c168b338d7e448a0ceddc70f1acc2204 /llvm/test/Transforms/GlobalMerge/used.ll | |
| parent | 5a0a83daaf6b5c22decee929a7cbb2af68937d50 (diff) | |
| download | bcm5719-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.ll | 29 |
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 +} |

