llvm/test/ThinLTO/X86
Teresa Johnson 23137e57a7 [ThinLTO] Import only necessary DICompileUnit fields
Summary:
As discussed on mailing list, for ThinLTO importing we don't need
to import all the fields of the DICompileUnit. Don't import enums,
macros, retained types lists. Also only import local scoped imported
entities. Since we don't currently import any global variables,
we also don't need to import the list of global variables (added an
assert to verify none are being imported).

This is being done by pre-populating the value map entries to map
the unneeded metadata to nullptr. For the imported entities, we can
simply replace the source module's list with a new list containing
only those needed imported entities. This is done in the IRLinker
constructor so that value mapping automatically does the desired
mapping.

Reviewers: mehdi_amini, dexonsmith, dblaikie, aprantl

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@289441 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-12 16:09:30 +00:00
..
Inputs [ThinLTO] Import only necessary DICompileUnit fields 2016-12-12 16:09:30 +00:00
alias_import.ll [ThinLTO] Only promote exported locals as marked in index 2016-11-14 19:21:41 +00:00
alias_resolution.ll [ThinLTO] Resolve LinkOnceAny 2016-05-26 14:16:52 +00:00
autoupgrade.ll Fix bitcode auto-upgrade when using bitcode lazy loading 2016-08-14 00:01:27 +00:00
cache-config.ll LTO: Hash the parts of the LTO configuration that affect code generation. 2016-12-08 05:28:30 +00:00
cache.ll ThinLTO: don't perform incremental LTO on module without a hash 2016-10-08 04:44:23 +00:00
crash_debuginfo.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
debuginfo-cu-import.ll [ThinLTO] Import only necessary DICompileUnit fields 2016-12-12 16:09:30 +00:00
diagnostic-handler-remarks-with-hotness.ll [LTOs] Allow generation of hotness information 2016-12-02 17:53:56 +00:00
diagnostic-handler-remarks.ll Make LTO opt-remarks tests matching stricter 2016-12-02 17:53:49 +00:00
dicompositetype-unique.ll [ThinLTO] Add a llvm-lto2 test to check that ODR type uniquing is enabled (NFC) 2016-08-23 18:39:15 +00:00
distributed_import.ll [ThinLTO] Handle distributed backend case when doing renaming 2016-11-03 01:07:16 +00:00
distributed_indexes.ll Restore "[ThinLTO] Emit individual index files for distributed backends" 2016-05-10 13:48:23 +00:00
drop-debug-info.ll Refactor stripDebugInfo(Function) to handle intrinsic 2016-05-07 04:10:52 +00:00
emit_imports.ll [ThinLTO] Always emit a summary when compiling in ThinLTO mode 2016-09-20 23:07:17 +00:00
empty_module_with_cache.ll ThinLTO: don't perform incremental LTO on module without a hash 2016-10-08 04:44:23 +00:00
funcimport2.ll [ThinLTO] Disable importing and other cross-module optis at -O0 2016-10-31 22:12:21 +00:00
funcimport.ll [ThinLTO] Stop importing constant global vars as copies in the backend 2016-12-02 01:02:30 +00:00
import_opaque_type.ll [ThinLTO] Fix crash when importing an opaque type 2016-11-19 18:44:16 +00:00
internalize.ll [LTO] Fix test following r279550 2016-08-23 19:32:41 +00:00
linkonce_aliasee_ref_import.ll [ThinLTO] Correctly resolve linkonce when importing aliasee 2016-10-30 05:15:23 +00:00
linkonce_resolution_comdat.ll [ThinLTO] Fix temp file dumping, enable via llvm-lto and test it 2016-08-15 23:24:57 +00:00
lit.local.cfg
llvm.used.ll ThinLTO: fix assertion and refactor check for hidden use from inline ASM in a helper function 2016-05-06 08:25:33 +00:00
module_asm2.ll Restore "[ThinLTO] Prevent exporting of locals used/defined in module level asm" 2016-11-14 17:12:32 +00:00
module_asm_glob.ll llvm-lto2: Simpler workaround for PR30396. 2016-11-30 23:19:05 +00:00
prefix_replace.ll [ThinLTO] Use semicolon to separate path prefix replacement 2016-05-17 18:43:22 +00:00
reference_non_importable.ll [ThinLTO] Stop importing constant global vars as copies in the backend 2016-12-02 01:02:30 +00:00
referenced_by_constant.ll [ThinLTO] Stop importing constant global vars as copies in the backend 2016-12-02 01:02:30 +00:00
section.ll ThinLTO: do not promote GlobalVariable that have a specific section. 2016-04-27 00:32:13 +00:00
select_right_alias_definition.ll
weak_resolution_single.ll ThinLTO: Remove check for multiple modules before applying weak resolutions. 2016-07-07 01:51:11 +00:00
weak_resolution.ll [ThinLTO] Correctly resolve linkonce when importing aliasee 2016-10-30 05:15:23 +00:00