llvm-project/llvm/test/ThinLTO/X86
Teresa Johnson a61f5e3796 [ThinLTO] Import composite types as declarations
Summary:
When reading the metadata bitcode, create a type declaration when
possible for composite types when we are importing. Doing this in
the bitcode reader saves memory. Also it works naturally in the case
when the type ODR map contains a definition for the same composite type
because it was used in the importing module (buildODRType will
automatically use the existing definition and not create a type
declaration).

For Chromium built with -g2, this reduces the aggregate size of the
generated native object files by 66% (from 31G to 10G). It reduced
the time through the ThinLTO link and backend phases by about 20% on
my machine.

Reviewers: mehdi_amini, dblaikie, aprantl

Subscribers: llvm-commits

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

llvm-svn: 289993
2016-12-16 21:25:01 +00:00
..
Inputs [ThinLTO] Import composite types as declarations 2016-12-16 21:25:01 +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 Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +00:00
debuginfo-compositetype-import.ll [ThinLTO] Import composite types as declarations 2016-12-16 21:25:01 +00:00
debuginfo-cu-import.ll Revert "[IR] Remove the DIExpression field from DIGlobalVariable." 2016-12-16 19:39:01 +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 [LTO] Reject modules without datalayout. 2016-12-14 21:57:04 +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
export.ll [ThinLTO] Thin link efficiency improvement: don't re-export globals (NFC) 2016-12-15 23:50:06 +00:00
funcimport.ll [ThinLTO] Stop importing constant global vars as copies in the backend 2016-12-02 01:02:30 +00:00
funcimport2.ll [ThinLTO] Disable importing and other cross-module optis at -O0 2016-10-31 22:12:21 +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
save_objects.ll [ThinLTO] Add an API to trigger file-based API for returning objects to the linker 2016-12-14 04:56:42 +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 FunctionImport: make sure we always select the right callee in presence of alias 2016-04-20 04:17:36 +00:00
weak_resolution.ll [ThinLTO] Correctly resolve linkonce when importing aliasee 2016-10-30 05:15:23 +00:00
weak_resolution_single.ll ThinLTO: Remove check for multiple modules before applying weak resolutions. 2016-07-07 01:51:11 +00:00