forked from OSchip/llvm-project
2f0cc477ab
Summary: Until a more advanced version of importing can be implemented for aliases (one that imports an alias as an available_externally definition of the aliasee), skip the narrow subset of cases that was possible but came at a cost: aliases of linkonce_odr functions could be imported because the linkonce_odr function could be safely duplicated from the source module. This came/comes at the cost of not being able to 'home' imported linkonce functions (they had to be emitted linkonce_odr in all the destination modules (even if they weren't used by an alias) rather than as available_externally - causing extra object size). Tangentially, this also was the only reason ThinLTO would emit multiple CUs in to the resulting DWARF - which happens to be a problem for Fission (there's a fix for this in GDB but not released yet, etc). (actually it's not the only reason - but I'm sending a patch to fix the other reason shortly) There's no reason to believe this particularly narrow alias importing was especially/meaningfully important, only that it was /possible/ to implement in this way. When a more general solution is done, it should still satisfy the DWARF concerns above, since the import will still be available_externally, and thus not create extra CUs. Since now all aliases are treated the same, I removed/simplified some test cases since they were testing corner cases where there are no longer any corners. Reviewers: tejohnson, mehdi_amini Differential Revision: https://reviews.llvm.org/D35875 llvm-svn: 309278 |
||
---|---|---|
.. | ||
Inputs | ||
alias_import.ll | ||
alias_resolution.ll | ||
autoupgrade.ll | ||
cache-config.ll | ||
cache-import-lists.ll | ||
cache-typeid-resolutions.ll | ||
cache.ll | ||
cfi-icall.ll | ||
crash_debuginfo.ll | ||
deadstrip.ll | ||
debuginfo-compositetype-import.ll | ||
debuginfo-cu-import.ll | ||
diagnostic-handler-remarks-with-hotness.ll | ||
diagnostic-handler-remarks.ll | ||
dicompositetype-unique.ll | ||
distributed_import.ll | ||
distributed_indexes.ll | ||
drop-debug-info.ll | ||
emit_imports.ll | ||
empty_module_with_cache.ll | ||
export.ll | ||
funcimport-tbaa.ll | ||
funcimport.ll | ||
funcimport2.ll | ||
import_opaque_type.ll | ||
internalize.ll | ||
lazyload_metadata.ll | ||
linkonce_aliasee_ref_import.ll | ||
linkonce_resolution_comdat.ll | ||
lit.local.cfg | ||
llvm.used.ll | ||
local_name_conflict.ll | ||
merge-triple.ll | ||
module_asm2.ll | ||
module_asm_glob.ll | ||
newpm-basic.ll | ||
prefix_replace.ll | ||
reference_non_importable.ll | ||
referenced_by_constant.ll | ||
save_objects.ll | ||
section.ll | ||
tli-nobuiltin.ll | ||
weak_resolution.ll | ||
weak_resolution_single.ll |