llvm-project/llvm/test/ThinLTO/X86
Steven Wu 05a358cdcd [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols
Summary:
Reapply r357931 with fixes to ThinLTO testcases and llvm-lto tool.

ThinLTOCodeGenerator currently does not preserve llvm.used symbols and
it can internalize them. In order to pass the necessary information to the
legacy ThinLTOCodeGenerator, the input to the code generator is
rewritten to be based on lto::InputFile.

Now ThinLTO using the legacy LTO API will requires data layout in
Module.

"internalize" thinlto action in llvm-lto is updated to run both
"promote" and "internalize" with the same configuration as
ThinLTOCodeGenerator. The old "promote" + "internalize" option does not
produce the same output as ThinLTOCodeGenerator.

This fixes: PR41236
rdar://problem/49293439

Reviewers: tejohnson, pcc, kromanova, dexonsmith

Reviewed By: tejohnson

Subscribers: ormris, bd1976llvm, mehdi_amini, inglorion, eraman, hiraditya, jkorous, dexonsmith, arphaman, dang, llvm-commits

Tags: #llvm

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

llvm-svn: 358601
2019-04-17 17:38:09 +00:00
..
Inputs [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +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.ll
builtin-nostrip.ll Commit accidentally omitted test case. 2019-04-01 16:29:40 +00:00
cache-config.ll [X86] Make Feature64Bit useful 2018-08-30 06:01:05 +00:00
cache-icall.ll [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
cache-import-lists.ll
cache-typeid-resolutions.ll [ThinLTO] Look through aliases when computing hash keys 2018-12-04 00:02:33 +00:00
cache.ll [test] Skip ThinLTO cache tests requiring atime setting on NetBSD 2018-12-05 11:15:50 +00:00
callees-metadata.ll
cfi-devirt.ll [ThinLTO] Detect partially split modules during the thin link 2019-02-14 21:22:50 +00:00
cfi-distributed.ll [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
cfi-icall.ll [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
cfi.ll [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
crash_debuginfo.ll
deadstrip.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
debuginfo-compositetype-import.ll
debuginfo-cu-import.ll
devirt-after-icp.ll [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
diagnostic-handler-remarks-with-hotness.ll Enrich inline messages 2018-08-05 14:53:08 +00:00
diagnostic-handler-remarks.ll Reland "[Remarks] Add -foptimization-record-passes to filter remark emission" 2019-03-12 21:22:27 +00:00
dicompositetype-unique-alias.ll
dicompositetype-unique.ll
dicompositetype-unique2.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-full-lto.ll [ThinLTO] Fix dot dumper for regular LTO modules 2018-10-24 07:48:32 +00:00
dot-dumper.ll [ThinLTO] Restructure AliasSummary to contain ValueInfo of Aliasee 2019-03-15 15:11:38 +00:00
drop-debug-info.ll
dsolocal_dllimport.ll
emit_imports.ll [ThinLTO] Use std::map to get determistic imports files 2018-07-10 20:06:04 +00:00
empty-module.ll [llvm-nm] Write "no symbol" output to stderr 2018-10-05 21:10:03 +00:00
empty_module_with_cache.ll
export.ll
funcimport-debug.ll [ThinLTO] Print names in function import debug messages when available 2018-06-27 18:03:39 +00:00
funcimport-tbaa.ll
funcimport.ll [LTO] Drop non-prevailing definitions only if linkage is not local or appending 2018-11-08 20:10:07 +00:00
funcimport2.ll [ThinLTO] Add option for printing import failure reasons 2018-08-17 16:53:47 +00:00
function_entry_count.ll [ThinLTO] Fix test added in rL349076 2018-12-14 08:21:08 +00:00
globals-import-blockaddr.ll [ThinLTO] Don't import GV which contains blockaddress 2018-10-12 07:24:02 +00:00
globals-import-const-fold.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
globals-import.ll
import_opaque_type.ll
index-const-prop-O0.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-alias.ll [ThinLTO] Internalize readonly globals 2018-11-16 07:08:00 +00:00
index-const-prop-cache.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-dead.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-ldst.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: Do not import debug info for imported global constants 2018-12-05 21:42:17 +00:00
index-const-prop2.ll ThinLTO: Do not import debug info for imported global constants 2018-12-05 21:42:17 +00:00
internalize.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
lazyload_metadata.ll AbstractCallSite -- A unified interface for (in)direct and callback calls 2019-01-19 05:19:06 +00:00
linkonce_aliasee_ref_import.ll
linkonce_odr_unnamed_addr.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
linkonce_resolution_comdat.ll
lit.local.cfg
llvm.used.ll
local_name_conflict.ll [ThinLTO] Import local variables from the same module as caller 2018-11-29 17:02:42 +00:00
local_name_conflict_var.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_glob.ll
module_summary_graph_traits.ll
newpm-basic.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
prefix_replace.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
reference_non_importable.ll
referenced_by_constant.ll
save_objects.ll
section.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
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-used.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
tli-nobuiltin.ll
weak_resolution.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00
weak_resolution_single.ll [ThinLTO] Fix ThinLTOCodegenerator to export llvm.used symbols 2019-04-17 17:38:09 +00:00