llvm-project/llvm/test/ThinLTO/X86/Inputs
Wenlei He 1a8087adaf [ThinLTO] Disallow importing for functions with indir branch to block address
We don't allowing inlining for functions with blockaddress with uses other than strictly callbr. This is because if the blockaddress escapes the function via a global variable, inlining may lead to an invalid cross-function reference.

We check against such cases during inlining, however the check can fail for ThinLTO post-link because CFG simplification can incorrectly removes blocks based on wrong block reachability.

When we import a function with blockaddress taken in a global variable but without importing that variable, we won't go through value mapping to reflect the real address-taken-ness of the cloned blocks. For the imported clone, this leads to blocks reachable from indirect branch through global variable being incorrectly treated as unreachable and removed by SimplifyCFG.

Since inlining for such cases shouldn't be allowed in the first place, I'm marking them as ineligible for importing during pre-link to save the problem of missing address-taken-ness of imported clone as well as bad DCE and inlining.

Differential Revision: https://reviews.llvm.org/D106930
2021-07-28 18:02:48 -07:00
..
alias_import.ll
alias_internal.ll
alias_resolution.ll
autoupgrade.bc
cache-icall.ll
cache-import-lists1.ll
cache-import-lists2.ll
cache-typeid-resolutions-import.ll
cache-typeid-resolutions1.ll
cache-typeid-resolutions2.ll
cache-typeid-resolutions3.ll
cache.ll
callees-metadata.ll
cfi-distributed.ll
cfi-icall-only-bazqux.ll
cfi-unsat.ll Restore "[WPD/LowerTypeTests] Delay lowering/removal of type tests until after ICP" 2020-07-14 12:16:57 -07:00
crash_debuginfo.ll
deadstrip.ll
debuginfo-compositetype-import.ll
debuginfo-cu-import.ll
devirt2.ll Restore "[ThinLTO] Avoid temporaries when loading global decl attachment metadata" 2020-10-12 10:11:56 -07:00
devirt_alias.ll [ThinLTO/WPD] Fix index-based WPD for alias vtables 2020-01-13 13:38:26 -08:00
devirt_available_externally.ll [ThinLTO/WPD] Fix index-based WPD for available_externally vtables 2019-10-30 17:59:08 -07:00
devirt_external_comdat_same_guid.ll [ThinLTO/WPD] Remove an overly-aggressive assert 2020-01-14 10:57:14 -08:00
devirt_local_same_guid.ll [ThinLTO/WPD] Fix index-based WPD for available_externally vtables 2019-10-30 17:59:08 -07:00
devirt_promote.ll
devirt_single_hybrid_bar.ll [ThinLTO] Import virtual method with single implementation in hybrid mode 2019-10-17 07:46:18 +00:00
devirt_single_hybrid_foo.ll [ThinLTO] Import virtual method with single implementation in hybrid mode 2019-10-17 07:46:18 +00:00
diagnostic-handler-remarks.ll
dicompositetype-unique-alias.ll
dicompositetype-unique.ll
dicompositetype-unique2.ll
distributed_import.ll [NFCI] Add missing triple to several LTO tests 2020-12-09 13:13:58 -08:00
distributed_indexes.ll
dot-dumper.ll [ThinLTO] Always import constants 2020-01-15 19:29:01 +03:00
dot-dumper2.ll
drop-debug-info.bc
drop-debug-info.ll
dsolocal_dllimport.ll
emit_imports.ll
emit_imports2.ll
empty.ll
empty_module_with_cache.ll
export.ll
funcimport-debug.ll
funcimport-tbaa.ll
funcimport.ll
funcimport2.ll
funcimport_alwaysinline.ll ThinLTO : Import always_inline functions irrespective of the threshold 2019-11-08 17:02:01 -08:00
function_entry_count.ll
globals-import-blockaddr.ll [ThinLTO] Disallow importing for functions with indir branch to block address 2021-07-28 18:02:48 -07:00
globals-import-cf-baz.ll
globals-import.ll
guid_collision.ll Recommit "[ThinLTO] Handle GUID collision in import global processing"" 2019-11-01 13:57:01 -07:00
import-constant.ll [ThinLTO] Always import constants 2020-01-15 19:29:01 +03:00
import-metadata.ll [ThinLTO] Fix a metadata lost issue with DICompileUnit import. 2020-09-02 14:40:41 -07:00
import-ro-constant-bar.ll [ThinLTO] Always import constants 2020-01-15 19:29:01 +03:00
import-ro-constant-foo.ll [ThinLTO] Always import constants 2020-01-15 19:29:01 +03:00
import-symver-foo.ll [ThinLTO] Import symver directives for imported symbols (PR48214) 2020-12-02 14:56:43 +01:00
import_opaque_type.ll
index-const-prop-alias.ll
index-const-prop-cache-foo.ll
index-const-prop-cache-test1.ll
index-const-prop-cache-test2.ll
index-const-prop-comdat.ll
index-const-prop-define-g.ll
index-const-prop-full-lto.ll
index-const-prop-gvref.ll [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
index-const-prop-linkage.ll
index-const-prop.ll
internalize.ll
lazyload_metadata.ll
linkonce_aliasee_ref_import.ll
linkonce_odr_unnamed_addr.ll
linkonce_resolution_comdat.ll
llvm.used.ll
local_name_conflict1.ll
local_name_conflict2.ll
local_name_conflict_var1.ll
local_name_conflict_var2.ll
merge-triple.ll
module_asm.ll
module_asm2.ll
noinline.ll
personality-local.ll
personality.ll
pr35472.ll
pseudo-probe-desc-import.ll [CSSPGO] Do not import pseudo probe desc in thinLTO 2021-07-13 18:26:36 -07:00
reference_non_importable.ll
referenced_by_constant.ll
section.ll
select_right_alias_definition1.ll
select_right_alias_definition2.ll
strong_non_prevailing.ll
thinlto-internalize-doublepromoted.ll [ThinLTO] Handle variable with twice promoted name (Rust) 2020-01-14 10:54:03 -08:00
thinlto-internalize-used2.ll
weak_resolution.ll
writeonly-with-refs.ll [ThinLTO] Fix bug when importing writeonly variables 2019-11-08 20:50:34 +03:00