llvm-project/llvm/test/ThinLTO/X86
Teresa Johnson 70ec64cb72 [ThinLTO] Restructure AliasSummary to contain ValueInfo of Aliasee
Summary:
The AliasSummary previously contained the AliaseeGUID, which was only
populated when reading the summary from bitcode. This patch changes it
to instead hold the ValueInfo of the aliasee, and always populates it.
This enables more efficient access to the ValueInfo (specifically in the
recent patch r352438 which needed to perform an index hash table lookup
using the aliasee GUID).

As noted in the comments in AliasSummary, we no longer technically need
to keep a pointer to the corresponding aliasee summary, since it could
be obtained by walking the list of summaries on the ValueInfo looking
for the summary in the same module. However, I am concerned that this
would be inefficient when walking through the index during the thin
link for various analyses. That can be reevaluated in the future.

By always populating this new field, we can remove the guard and special
handling for a 0 aliasee GUID when dumping the dot graph of the summary.

An additional improvement in this patch is when reading the summaries
from LLVM assembly we now set the AliaseeSummary field to the aliasee
summary in that same module, which makes it consistent with the behavior
when reading the summary from bitcode.

Reviewers: pcc, mehdi_amini

Subscribers: inglorion, eraman, steven_wu, dexonsmith, arphaman, llvm-commits

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

llvm-svn: 356268
2019-03-15 15:11:38 +00:00
..
Inputs [ThinLTO] Scan all variants of vague symbol for reachability. 2019-01-02 23:18:20 +00:00
alias_import.ll [FileCheck] Add -allow-deprecated-dag-overlap to failing llvm tests 2018-07-11 20:25:49 +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
autoupgrade.ll [ThinLTO] Add string saver onto index for value names 2018-06-26 02:29:08 +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 [ThinLTO] Add funtions in callees metadata to CallGraphEdges 2018-03-13 04:26:58 +00:00
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 [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
deadstrip.ll [ThinLTO] Scan all variants of vague symbol for reachability. 2019-01-02 23:18:20 +00:00
debuginfo-compositetype-import.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debuginfo-cu-import.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
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 [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
dicompositetype-unique.ll
dicompositetype-unique2.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
distributed_import.ll
distributed_indexes.ll [ThinLTO] Fix printing of aliases for distributed backend indexes 2018-07-03 01:11:43 +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 [ThinLTO] Clear dllimport when setting dso_local. 2018-03-13 15:24:51 +00:00
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 [ThinLTO] Recommit of import global variables 2018-03-12 10:30:50 +00:00
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] Add an option to disable (thin)lto internalization. 2018-11-05 15:49:46 +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
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
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
reference_non_importable.ll
referenced_by_constant.ll
save_objects.ll
section.ll
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
tli-nobuiltin.ll
weak_resolution.ll
weak_resolution_single.ll