diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-03 18:29:09 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-03 18:29:09 +0000 |
commit | 438900938c3ac9d7fac2dd5d2c85ca4b9b2e35f7 (patch) | |
tree | ee292d94cfa7c8661cc4cd598f32e66289df9aeb /test/Transforms/Internalize/lists.ll | |
parent | 1df59ef1aa271a4e33cf8973e14bcaf55c585231 (diff) | |
download | llvm-438900938c3ac9d7fac2dd5d2c85ca4b9b2e35f7.tar.gz llvm-438900938c3ac9d7fac2dd5d2c85ca4b9b2e35f7.tar.bz2 llvm-438900938c3ac9d7fac2dd5d2c85ca4b9b2e35f7.tar.xz |
Optimize linkonce_odr unnamed_addr functions during LTO.
Generalize the API so we can distinguish symbols that are needed just for a DSO
symbol table from those that are used from some native .o.
The symbols that are only wanted for the dso symbol table can be dropped if
llvm can prove every other dso has a copy (linkonce_odr) and the address is not
important (unnamed_addr).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191922 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/Internalize/lists.ll')
-rw-r--r-- | test/Transforms/Internalize/lists.ll | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/Transforms/Internalize/lists.ll b/test/Transforms/Internalize/lists.ll index 83e441a2df..59fe0737d3 100644 --- a/test/Transforms/Internalize/lists.ll +++ b/test/Transforms/Internalize/lists.ll @@ -13,6 +13,10 @@ ; -file and -list options should be merged, the apifile contains foo and j ; RUN: opt < %s -internalize -internalize-public-api-list bar -internalize-public-api-file %S/apifile -S | FileCheck --check-prefix=FOO_J_AND_BAR %s +; Put zed1 and zed2 in the symbol table. If the address is not relevant, we +; internalize them. +; RUN: opt < %s -internalize -internalize-dso-list zed1,zed2 -S | FileCheck --check-prefix=ZED1_AND_ZED2 %s + ; ALL: @i = internal global ; FOO_AND_J: @i = internal global ; FOO_AND_BAR: @i = internal global @@ -25,6 +29,12 @@ ; FOO_J_AND_BAR: @j = global @j = global i32 0 +; ZED1_AND_ZED2: @zed1 = linkonce_odr global i32 42 +@zed1 = linkonce_odr global i32 42 + +; ZED1_AND_ZED2: @zed2 = internal unnamed_addr global i32 42 +@zed2 = linkonce_odr unnamed_addr global i32 42 + ; ALL: define internal void @main() { ; FOO_AND_J: define internal void @main() { ; FOO_AND_BAR: define internal void @main() { |