llvm/test/ThinLTO/X86
Teresa Johnson 801dc0146e [ThinLTO] Import static functions from the same module as caller
Summary:
We can sometimes end up with multiple copies of a local function that
have the same GUID in the index. This happens when there are local
functions with the same name that are in different source files with the
same name (but in different directories), and they were compiled in
their own directory so had the same path at compile time.

In this case make sure we import the copy in the caller's module. While
it isn't a correctness problem (the renamed reference which is based on the
module IR hash will be unique since the module must have had an
externally visible function that was imported), importing the wrong copy
will result in lost performance opportunity since it won't be referenced
and inlined.

Reviewers: mehdi_amini

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291841 91177308-0d34-0410-b5e6-96231b3b80d8
2017-01-12 22:04:45 +00:00
..
Inputs [ThinLTO] Fix assertions on lazy-loading of Metadata TBAA attachments 2017-01-07 20:24:23 +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 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 Restore "[ThinLTO] Emit individual index files for distributed backends" 2016-05-10 13:48:23 +00:00
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
funcimport2.ll [ThinLTO] Disable importing and other cross-module optis at -O0 2016-10-31 22:12:21 +00:00
funcimport-tbaa.ll [ThinLTO] Fix assertions on lazy-loading of Metadata TBAA attachments 2017-01-07 20:24:23 +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
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 ThinLTO: fix assertion and refactor check for hidden use from inline ASM in a helper function 2016-05-06 08:25:33 +00:00
local_name_conflict.ll [ThinLTO] Import static functions from the same module as caller 2017-01-12 22:04:45 +00:00
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 [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_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