hanchenye-llvm-project/llvm/test/ThinLTO/X86
Teresa Johnson 6c475a7595 ThinLTO: add early "dead-stripping" on the Index
Summary:
Using the linker-supplied list of "preserved" symbols, we can compute
the list of "dead" symbols, i.e. the one that are not reachable from
a "preserved" symbol transitively on the reference graph.
Right now we are using this information to mark these functions as
non-eligible for import.

The impact is two folds:
- Reduction of compile time: we don't import these functions anywhere
  or import the function these symbols are calling.
- The limited number of import/export leads to better internalization.

Patch originally by Mehdi Amini.

Reviewers: mehdi_amini, pcc

Subscribers: llvm-commits

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

llvm-svn: 291177
2017-01-05 21:34:18 +00:00
..
Inputs ThinLTO: add early "dead-stripping" on the Index 2017-01-05 21:34:18 +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
autoupgrade.ll Fix test change in r290736: restore index generation 2016-12-30 01:15:50 +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 Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
deadstrip.ll ThinLTO: add early "dead-stripping" on the Index 2017-01-05 21:34:18 +00:00
debuginfo-compositetype-import.ll [ThinLTO] Import composite types as declarations 2016-12-16 21:25:01 +00:00
debuginfo-cu-import.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +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
drop-debug-info.ll [ThinLTO] Rework llvm-link to use the FunctionImporter 2017-01-04 14:27:31 +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
lazyload_metadata.ll Mark test that is testing statistics output as requiring Assertions 2017-01-05 01:08:01 +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
module_asm2.ll [ThinLTO] Fix "||" vs "|" mixup. 2016-12-27 17:45:09 +00:00
module_asm_glob.ll llvm-lto2: Simpler workaround for PR30396. 2016-11-30 23:19:05 +00:00
prefix_replace.ll
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
select_right_alias_definition.ll
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