1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/test/ThinLTO/X86
Teresa Johnson d203f88115 [LTO] Fix a crash caused by accessing an empty ValueInfo
ModuleSummaryIndex::exportToDot crashes when linking the Linux kernel
under ThinLTO using LLVMgold.so. This is due to the exportToDot
function trying to get the GUID of an empty ValueInfo. The root cause
related to the fact that we attempt to get the GUID of an aliasee
via its OriginalGUID recorded in the aliasee summary, and that is not
always possible. Specifically, we cannot do this mapping when the value
is internal linkage and there were other internal linkage symbols with
the same name.

There are 2 fixes for the problem included here.

1) In all cases where we can currently print the dot file from the
command line (which is only via save-temps), we have a valid AliaseeGUID
in the AliasSummary. Use that when it is available, so that we can get
the correct aliasee GUID whenever possible.

2) However, if we were to invoke exportToDot from the debugger right
after it is built during the initial analysis step (i.e. the per-module
summary), we won't have the AliaseeGUID field populated. In that case,
we have a fallback fix that will simply print "@"+GUID when we aren't
able to get the GUID from the OriginalGUID. It simply checks if the VI
is valid or not before attempting to get the name. Additionally, since
getAliaseeGUID will assert that the AliaseeGUID is non-zero, guard the
earlier fix #1 by a new function hasAliaseeGUID().

Reviewers: pcc, tmroeder

Subscribers: evgeny777, mehdi_amini, inglorion, dexonsmith, arphaman, llvm-commits

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

llvm-svn: 346055
2018-11-02 23:49:21 +00:00
..
Inputs [LTO] Fix a crash caused by accessing an empty ValueInfo 2018-11-02 23:49:21 +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
cache-import-lists.ll
cache-typeid-resolutions.ll
cache.ll [ThinLTO]Expose cache entry expiration time option in llvm-lto and fix a test 2018-10-03 13:00:20 +00:00
callees-metadata.ll [ThinLTO] Add funtions in callees metadata to CallGraphEdges 2018-03-13 04:26:58 +00:00
cfi-devirt.ll [X86] Re-enable the machine verifier after fixing more tests 2018-10-30 12:20:17 +00:00
cfi-distributed.ll [ThinLTO] Write TYPE_IDs for types used in functions imported by aliases 2018-09-19 18:51:42 +00:00
cfi-icall.ll [LowerTypeTests] Limit when icall jumptable entries are emitted 2018-07-13 19:57:39 +00:00
cfi.ll [ThinLTO] Enable ThinLTO WholeProgramDevirt and LowerTypeTests in new PM 2018-07-19 14:51:32 +00:00
crash_debuginfo.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
deadstrip.ll [LTO] Call InitLLVM from llvm-lto2 2018-10-16 17:37:45 +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 [X86] Re-enable the machine verifier after fixing more tests 2018-10-30 12:20:17 +00:00
diagnostic-handler-remarks-with-hotness.ll Enrich inline messages 2018-08-05 14:53:08 +00:00
diagnostic-handler-remarks.ll Enrich inline messages 2018-08-05 14:53:08 +00:00
dicompositetype-unique2.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +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 [LTO] Update tests for r320905 2017-12-16 02:40:20 +00:00
distributed_import.ll [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
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] Re-commit of dot dumper after test fix 2018-01-22 13:35:40 +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_with_cache.ll
empty-module.ll [llvm-nm] Write "no symbol" output to stderr 2018-10-05 21:10:03 +00:00
export.ll Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00
funcimport2.ll [ThinLTO] Add option for printing import failure reasons 2018-08-17 16:53:47 +00:00
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 Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +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] Recommit of import global variables 2018-03-12 10:30:50 +00:00
globals-import.ll [ThinLTO] Recommit of import global variables 2018-03-12 10:30:50 +00:00
import_opaque_type.ll
internalize.ll [ThinLTO] - Stop internalizing and drop non-prevailing symbols. 2018-01-29 08:03:30 +00:00
lazyload_metadata.ll Irreducible loop metadata for more accurate block frequency under PGO. 2017-11-02 22:26:51 +00:00
linkonce_aliasee_ref_import.ll
linkonce_odr_unnamed_addr.ll [ThinLTO] Teach ThinLTO about auto hide symbols 2018-02-09 18:34:08 +00:00
linkonce_resolution_comdat.ll [ThinLTO] Teach ThinLTO about auto hide symbols 2018-02-09 18:34:08 +00:00
lit.local.cfg
llvm.used.ll
local_name_conflict.ll Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00
merge-triple.ll
module_asm2.ll [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
module_asm_glob.ll [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
module_summary_graph_traits.ll [ThinLTO] Add GraphTraits for FunctionSummaries 2018-02-19 15:14:50 +00:00
newpm-basic.ll
noinline.ll [ThinLTO] Don't import functions with noinline attribute 2017-12-25 13:57:24 +00:00
personality-local.ll [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
personality.ll [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
prefix_replace.ll
reference_non_importable.ll [LTO] Make processing of combined module more consistent 2017-12-16 02:10:00 +00:00
referenced_by_constant.ll Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00
save_objects.ll
section.ll
tli-nobuiltin.ll
weak_resolution_single.ll
weak_resolution.ll