1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/ThinLTO/X86/Inputs
Teresa Johnson 69b4df22e0 [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible
Summary:
We hit undefined references building with ThinLTO when one source file
contained explicit instantiations of a template method (weak_odr) but
there were also implicit instantiations in another file (linkonce_odr),
and the latter was the prevailing copy. In this case the symbol was
marked hidden when the prevailing linkonce_odr copy was promoted to
weak_odr. It led to unsats when the resulting shared library was linked
with other code that contained a reference (expecting to be resolved due
to the explicit instantiation).

Add a CanAutoHide flag to the GV summary to allow the thin link to
identify when all copies are eligible for auto-hiding (because they were
all originally linkonce_odr global unnamed addr), and only do the
auto-hide in that case.

Most of the changes here are due to plumbing the new flag through the
bitcode and llvm assembly, and resulting test changes. I augmented the
existing auto-hide test to check for this situation.

Reviewers: pcc

Subscribers: mehdi_amini, inglorion, eraman, dexonsmith, arphaman, dang, llvm-commits, steven_wu, wmi

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D59709

llvm-svn: 360466
2019-05-10 20:08:24 +00:00
..
alias_import.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
alias_internal.ll [LTO] Fix a crash caused by accessing an empty ValueInfo 2018-11-02 23:49:21 +00:00
alias_resolution.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
autoupgrade.bc
cache-icall.ll
cache-import-lists1.ll
cache-import-lists2.ll
cache-typeid-resolutions1.ll
cache-typeid-resolutions2.ll
cache-typeid-resolutions3.ll
cache-typeid-resolutions-import.ll
cache.ll
callees-metadata.ll
cfi-distributed.ll [ThinLTO] Write TYPE_IDs for types used in functions imported by aliases 2018-09-19 18:51:42 +00:00
crash_debuginfo.ll
deadstrip.ll [ThinLTO] Scan all variants of vague symbol for reachability. 2019-01-02 23:18:20 +00:00
debuginfo-compositetype-import.ll
debuginfo-cu-import.ll
diagnostic-handler-remarks.ll
dicompositetype-unique2.ll
dicompositetype-unique-alias.ll
dicompositetype-unique.ll
distributed_import.ll
distributed_indexes.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
dot-dumper.ll
drop-debug-info.bc
drop-debug-info.ll
dsolocal_dllimport.ll
emit_imports2.ll
emit_imports.ll
empty_module_with_cache.ll
empty.ll
export.ll
funcimport2.ll
funcimport-debug.ll
funcimport-tbaa.ll
funcimport.ll
function_entry_count.ll [ThinLTO] Compute synthetic function entry count 2018-12-13 19:54:27 +00:00
globals-import-blockaddr.ll [ThinLTO] Don't import GV which contains blockaddress 2018-10-12 07:24:02 +00:00
globals-import-cf-baz.ll
globals-import.ll
import_opaque_type.ll
index-const-prop-alias.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-cache-foo.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-cache-test1.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-cache-test2.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-comdat.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-define-g.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-full-lto.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-gvref.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-linkage.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
lazyload_metadata.ll
linkonce_aliasee_ref_import.ll
linkonce_odr_unnamed_addr.ll [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible 2019-05-10 20:08:24 +00:00
linkonce_resolution_comdat.ll
llvm.used.ll
local_name_conflict1.ll [ThinLTO] Import local variables from the same module as caller 2018-11-29 17:02:42 +00:00
local_name_conflict2.ll [ThinLTO] Import local variables from the same module as caller 2018-11-29 17:02:42 +00:00
local_name_conflict_var1.ll [ThinLTO] Import local variables from the same module as caller 2018-11-29 17:02:42 +00:00
local_name_conflict_var2.ll [ThinLTO] Import local variables from the same module as caller 2018-11-29 17:02:42 +00:00
merge-triple.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
module_asm2.ll
module_asm.ll
noinline.ll
personality-local.ll
personality.ll
pr35472.ll [ThinLTO] Fix a crash in lazy loading of Metadata 2018-11-14 20:58:04 +00:00
reference_non_importable.ll
referenced_by_constant.ll
section.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
select_right_alias_definition1.ll
select_right_alias_definition2.ll
strong_non_prevailing.ll [LTO] Drop non-prevailing definitions only if linkage is not local or appending 2018-11-08 20:10:07 +00:00
thinlto-internalize-used2.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
weak_resolution.ll