llvm-project/llvm/test/ThinLTO/X86
Peter Collingbourne 681fbb64a4 ModuleSummaryAnalysis: Correctly handle all function operand references.
The current code that handles personality functions when creating a
module summary does not correctly handle the case where a function's
personality function operand refers to the function indirectly
(e.g. via a bitcast). This patch handles such cases by treating
personality function references like any other reference, i.e. by
adding them to the function's reference list. This has the minor side
benefit of allowing personality functions to participate in early
dead stripping.

We do this by calling findRefEdges on the function itself. This way
we also end up handling other function operands (specifically prefix
data and prologue data) for free.

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

llvm-svn: 312698
2017-09-07 05:35:35 +00:00
..
Inputs ModuleSummaryAnalysis: Correctly handle all function operand references. 2017-09-07 05:35:35 +00:00
alias_import.ll ThinLTO: Don't import aliases of any kind (even linkonce_odr) 2017-07-27 15:09:06 +00:00
alias_resolution.ll
autoupgrade.ll Bitcode: Write the irsymtab to disk. 2017-06-27 23:50:11 +00:00
cache-config.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
cache-icall.ll Fix thinlto cache key computation for cfi-icall. 2017-08-09 23:24:07 +00:00
cache-import-lists.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
cache-typeid-resolutions.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
cache.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
cfi-icall.ll [cfi] CFI-ICall for ThinLTO. 2017-06-16 00:18:29 +00:00
crash_debuginfo.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
deadstrip.ll Move summary dead stripping before regular LTO. 2017-06-02 18:24:17 +00:00
debuginfo-compositetype-import.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
debuginfo-cu-import.ll Canonicalize the representation of empty an expression in DIGlobalVariableExpression 2017-08-30 18:06:51 +00:00
diagnostic-handler-remarks-with-hotness.ll Emit only A Single Opt Remark When Inlining 2017-08-21 16:45:47 +00:00
diagnostic-handler-remarks.ll Emit only A Single Opt Remark When Inlining 2017-08-21 16:45:47 +00:00
dicompositetype-unique.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
distributed_import.ll ThinLTO Minimized Bitcode File Size Reduction 2017-07-21 17:25:20 +00:00
distributed_indexes.ll Bitcode: Add a string table to the bitcode format. 2017-04-17 17:51:36 +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 llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
empty_module_with_cache.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
export.ll [ThinLTO] Thin link efficiency improvement: don't re-export globals (NFC) 2016-12-15 23:50:06 +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
funcimport2.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
import_opaque_type.ll [ThinLTO] Fix crash when importing an opaque type 2016-11-19 18:44:16 +00:00
internalize.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
lazyload_metadata.ll Add !associated metadata. 2017-03-17 22:17:24 +00:00
linkonce_aliasee_ref_import.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
linkonce_resolution_comdat.ll Temporarily revert "For X86-64 linux and PPC64 linux align int128 to 16 bytes." 2017-02-10 04:35:32 +00:00
lit.local.cfg
llvm.used.ll
local_name_conflict.ll [ThinLTO] Import static functions from the same module as caller 2017-01-12 22:04:45 +00:00
merge-triple.ll [ThinLTO] Do not assert when adding a module with a different but 2017-05-18 03:52:29 +00:00
module_asm2.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
module_asm_glob.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +00:00
newpm-basic.ll [ThinLTO] Move -lto-use-new-pm to llvm-lto2, and change it to -use-new-pm. 2017-06-01 23:13:44 +00:00
personality-local.ll [lib/Analysis] - Mark personality functions as live. 2017-08-22 08:50:56 +00:00
personality.ll ModuleSummaryAnalysis: Correctly handle all function operand references. 2017-09-07 05:35:35 +00:00
prefix_replace.ll [llvm] Get rid of "%T" expansions 2017-08-15 20:29:24 +00:00
reference_non_importable.ll llvm-lto2: Move the LTO::run() action behind a subcommand. 2017-04-11 18:12:00 +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
tli-nobuiltin.ll Add support for -fno-builtin to LTO and ThinLTO to libLTO 2017-03-28 18:55:44 +00:00
weak_resolution.ll [ThinLTO] Drop non-prevailing non-ODR weak to declarations 2017-01-20 21:54:58 +00:00
weak_resolution_single.ll