llvm-project/llvm/test/Linker
David Blaikie 2f0cc477ab ThinLTO: Don't import aliases of any kind (even linkonce_odr)
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
2017-07-27 15:09:06 +00:00
..
Inputs [Linker] Add directives to support mixing ARM/Thumb module-level inline asm. 2017-07-12 11:52:28 +00:00
2002-07-17-GlobalFail.ll
2002-07-17-LinkTest2.ll
2002-08-20-ConstantExpr.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2003-01-30-LinkerRename.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
2003-01-30-LinkerTypeRename.ll
2003-04-23-LinkOnceLost.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
2003-04-26-NullPtrLinkProblem.ll
2003-05-15-TypeProblem.ll
2003-05-31-LinkerRename.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
2003-06-02-TypeResolveProblem.ll
2003-06-02-TypeResolveProblem2.ll
2003-08-20-OpaqueTypeResolve.ll
2003-08-23-GlobalVarLinking.ll
2003-08-23-RecursiveOpaqueTypeResolve.ll
2003-08-24-InheritPtrSize.ll
2003-08-28-TypeResolvesGlobal.ll
2003-08-28-TypeResolvesGlobal2.ll
2003-08-28-TypeResolvesGlobal3.ll Make "@name =" mandatory for globals in .ll files. 2016-05-10 18:22:45 +00:00
2003-10-27-LinkOncePromote.ll
2003-11-18-TypeResolution.ll
2004-02-17-WeakStrongLinkage.ll
2004-05-07-TypeResolution1.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
2004-05-07-TypeResolution2.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
2004-12-03-DisagreeingType.ll
2005-02-12-ConstantGlobals-2.ll
2005-02-12-ConstantGlobals.ll
2005-12-06-AppendingZeroLengthArrays.ll
2006-01-19-ConstantPacked.ll
2008-03-05-AliasReference.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2008-03-05-AliasReference2.ll
2008-03-07-DroppedSection_a.ll
2008-03-07-DroppedSection_b.ll
2008-06-13-LinkOnceRedefinition.ll
2008-06-26-AddressSpace.ll
2008-07-06-AliasFnDecl.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2008-07-06-AliasFnDecl2.ll
2008-07-06-AliasWeakDest.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
2008-07-06-AliasWeakDest2.ll
2009-09-03-mdnode.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2009-09-03-mdnode2.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-04-DebugLoc.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-04-DebugLoc2.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-04-Metadata.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
2011-08-04-Metadata2.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
2011-08-18-unique-class-type.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
2011-08-18-unique-class-type2.ll Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
2011-08-18-unique-debug-type.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
2011-08-18-unique-debug-type2.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
AppendingLinkage.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
AppendingLinkage2.ll
ConstantGlobals.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
DbgDeclare.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
DbgDeclare2.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
LinkOnce.ll
PR8300.ll
alias-2.ll Fix PR26152. 2016-01-20 22:05:50 +00:00
alias-3.ll IRLinker: fix double scheduling of mapping a global value because of an alias 2016-05-25 21:00:44 +00:00
alias.ll Slit lib/Linker in two. 2015-12-10 14:19:35 +00:00
alignment.ll Add a few extra cases to the test. NFC. 2014-12-05 00:02:42 +00:00
apple-version.ll [LinkModules] Change the way ModuleLinker merges triples. 2015-02-13 00:40:41 +00:00
available_externally_a.ll Linker: Move special casing for available_externally in IRMover to clients. NFCI. 2017-02-02 05:12:15 +00:00
available_externally_b.ll
available_externally_over_decl.ll Fix another case where the linkage was not set. 2015-12-10 18:44:26 +00:00
basiclink.ll
broken.ll Don't verify inputs to the Linker if ODR merging. 2016-06-29 18:31:48 +00:00
comdat-rm-dst.ll Drop comdats from the dst module if they are not selected. 2016-03-22 21:35:47 +00:00
comdat.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat2.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat4.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat5.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat6.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
comdat7.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat8.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
comdat9.ll Fix lazy linking of comdat members. 2016-03-24 00:06:03 +00:00
comdat10.ll Linker: Do not expect comdat to exist in source module. 2015-06-22 21:46:51 +00:00
comdat11.ll Bring r254336 back: 2015-12-01 15:19:48 +00:00
comdat12.ll Bring r254336 back: 2015-12-01 15:19:48 +00:00
comdat13.ll Bring r254336 back: 2015-12-01 15:19:48 +00:00
comdat14.ll ModuleLinker: Do not import linkonce/weak as "external_weak" 2016-04-19 16:11:05 +00:00
comdat15.ll Also copy private linkage globals when needed. 2015-12-02 20:57:33 +00:00
comdat16.ll Fix logic for which symbols to keep with comdats. 2016-03-23 21:16:33 +00:00
comdat_group.ll Pass .ll directly to llvm-link 2015-11-27 23:21:45 +00:00
constructor-comdat.ll Fix logic for which symbols to keep with comdats. 2016-03-23 21:16:33 +00:00
ctors.ll Avoid writing to source directory of tests 2015-11-30 20:36:23 +00:00
ctors2.ll Correctly handle llvm.global_ctors merging. 2015-11-29 03:29:42 +00:00
ctors3.ll Fix another llvm.ctors merging bug. 2015-11-30 18:54:24 +00:00
ctors4.ll Add an interesting case we already get right. 2015-12-02 15:02:43 +00:00
ctors5.ll Change how the linker handles the old llvm.global_ctors. 2015-12-07 13:24:23 +00:00
datalayout.ll Make DataLayout Non-Optional in the Module 2015-03-04 18:43:29 +00:00
debug-info-global-var.ll [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
debug-info-version-a.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
debug-info-version-b.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
dicompositetype-unique.ll IR: Enable debug info type ODR uniquing for forward decls 2016-04-19 18:00:19 +00:00
distinct-cycles.ll Utils: Resolve cycles under distinct MDNodes 2015-02-04 19:44:34 +00:00
distinct.ll Restore "Move metadata linking after lazy global materialization/linking." 2015-11-06 17:50:53 +00:00
dllstorage-a.ll
dllstorage-b.ll
drop-debug.ll Use diagnostic handler in the LLVMContext 2015-12-14 23:17:03 +00:00
func-attrs-a.ll
func-attrs-b.ll
funcimport.ll ThinLTO: Don't import aliases of any kind (even linkonce_odr) 2017-07-27 15:09:06 +00:00
funcimport2.ll ThinLTO/ModuleLinker: add a flag to not always pull-in linkonce when performing importing 2016-04-21 01:59:39 +00:00
funcimport_appending_global.ll Move summary creation out of llvm-as into opt 2016-04-12 21:35:18 +00:00
funcimport_comdat.ll Move summary creation out of llvm-as into opt 2016-04-12 21:35:18 +00:00
global_ctors.ll Simplify test. NFC. 2015-12-01 15:46:46 +00:00
ident.ll
inlineasm.ll
internalize-lazy.ll Add a test showing that we internalize lazily linked GVs. 2015-12-08 02:38:14 +00:00
link-arm-and-thumb-module-inline-asm.ll [Linker] Add directives to support mixing ARM/Thumb module-level inline asm. 2017-07-12 11:52:28 +00:00
link-arm-and-thumb.ll [Linker] Remove llc usage from link-arm-and-thumb.ll test case. 2017-06-07 09:59:22 +00:00
link-flags.ll [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
link-global-to-func.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
link-type-names.ll
linkage.ll
linkage2.ll
linkmdnode.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
linkmdnode2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
linknamedmdnode.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
linknamedmdnode2.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
lto-attributes.ll Lazily link GlobalVariables and GlobalAliases. 2014-12-08 18:45:16 +00:00
mdlocation.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
metadata-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
metadata-attach.ll Linker: Remove unnecessary call to copyMetadata in IRLinker::linkGlobalVariable. 2016-11-14 23:18:38 +00:00
metadata-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
metadata-function.ll Linker: Copy over function metadata attachments 2015-04-24 22:07:31 +00:00
metadata-global.ll Remap metadata attached to global variables. 2017-05-04 23:29:39 +00:00
metadata-with-global-value-operand.ll IR: Drop uniquing when an MDNode Value operand is deleted 2016-08-03 18:19:43 +00:00
module-flags-1-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-1-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-2-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-2-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-3-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-3-b.ll llvm-link: Verify input modules 2015-03-25 23:22:10 +00:00
module-flags-4-a.ll Linker: teach the IR mover to return llvm::Error. 2016-05-27 05:21:35 +00:00
module-flags-4-b.ll Linker: teach the IR mover to return llvm::Error. 2016-05-27 05:21:35 +00:00
module-flags-5-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-5-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-6-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-6-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-7-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-7-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-8-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-8-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-dont-change-others.ll Linker: Don't use MDNode::replaceOperandWith() 2015-01-07 21:32:27 +00:00
module-flags-pic-1-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
module-flags-pic-2-a.ll Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
multiple-merged-structs.ll
null_mapping_constant.ll ValueMapper: fix assertion when null-mapping a constant for linking metadata 2016-05-28 17:26:03 +00:00
objectivec-class-property-flag-mismatch.ll Fix autoupgrade logic for Objective-C class properties module flag 2016-09-16 00:38:18 +00:00
odr.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
only-needed-debug-metadata.ll Renumber testcase metadata nodes after r290153. 2016-12-22 00:45:21 +00:00
only-needed-named-metadata.ll Revert obsolete llvm-link -preserve-modules option/test 2016-01-21 14:28:52 +00:00
only-needed-recurse.ll Fix recursive -only-needed. 2016-04-21 14:56:33 +00:00
opaque.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
override-different-linkage.ll Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
override-with-internal-linkage-2.ll Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
override-with-internal-linkage.ll Have a single way for creating unique value names. 2015-11-22 00:16:24 +00:00
override.ll Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
partial-type-refinement-link.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
partial-type-refinement.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
pr21374.ll Ask the module for its the identified types. 2014-12-03 07:18:23 +00:00
pr21494.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
pr22807.ll Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
pr26037.ll Debug Info: Add a file: field to DIImportedEntity. 2017-07-19 00:09:54 +00:00
pr27044.ll Fix another case where we were unconditionally linking linkonce GVs. 2016-03-24 15:23:01 +00:00
prologuedata.ll Make this test less strict. 2015-11-29 14:53:06 +00:00
redefinition.ll
replaced-function-matches-first-subprogram.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
subprogram-linkonce-weak.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
syncscopes.ll Enhance synchscope representation 2017-07-11 22:23:00 +00:00
targettriple.ll lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
testlink.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
thinlto_funcimport_debug.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
transitive-lazy-link.ll
type-unique-alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
type-unique-dst-types.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
type-unique-inheritance.ll
type-unique-name.ll
type-unique-odr-a.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-odr-b.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-opaque.ll
type-unique-simple-a.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-simple-b.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-simple2-a.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-simple2-b.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-simple2.ll Make the default triple optional by allowing an empty string 2015-09-16 05:34:32 +00:00
type-unique-src-type.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
type-unique-type-array-a.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-type-array-b.ll DebugInfo: Remove MDString-based type references 2016-04-23 21:08:00 +00:00
type-unique-unrelated.ll
unique-fwd-decl-a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
unique-fwd-decl-order.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
uniqued-distinct-cycles.ll Linker: Fix references to uniqued nodes after r243883 2015-08-04 06:42:31 +00:00
unnamed-addr-err-a.ll
unnamed-addr-err-b.ll
unnamed-addr1-a.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00
unnamed-addr1-b.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
visibility.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
weakextern.ll Link declaration lazily. 2015-12-07 16:31:41 +00:00