1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/test/Linker/Inputs
Teresa Johnson a66e5da8be Ensure ModuleLinker materializes complete comdat groups
Summary:
The module linker lazy links some "discardable if unused" global
values (e.g. linkonce), materializing and linking them only
if they are referenced in the module. If a comdat group contains a
linkonce member that is not referenced, however, it would not be
materialized and linked, leading to an incomplete comdat group.

If there are other object files not part of the same LTO link that also
define and use that comdat group, the linker may select the incomplete
group leading to link time unsats.

To solve this, whenever a global value body is linked, make sure we
materialize any other members of the same comdat group that are not yet
materialized. This ensures they are in the lazy link list and get linked
as well.

Added new test and adjusted old test to remove parts that didn't
make sense with fix.

Reviewers: rafael

Subscribers: dexonsmith, davidxl, llvm-commits

Differential Revision: http://reviews.llvm.org/D14516

llvm-svn: 252647
2015-11-10 21:09:06 +00:00
..
apple-version [LinkModules] Change the way ModuleLinker merges triples. 2015-02-13 00:40:41 +00:00
2003-01-30-LinkerRename.ll Make this test a bit stricter. 2014-10-23 18:44:07 +00:00
2003-05-31-LinkerRename.ll Make this test a bit stricter. 2014-10-23 18:52:46 +00:00
alias.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
alignment.ll Add a few extra cases to the test. NFC. 2014-12-05 00:02:42 +00:00
basiclink.a.ll
basiclink.b.ll [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
comdat2.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
comdat3.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 [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +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
comdat.ll Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
ConstantGlobals.ll merge tests for constant linking. 2014-10-31 05:04:16 +00:00
constructor-comdat.ll
ctors.ll Fix pr20078. 2014-09-05 21:27:52 +00:00
datalayout-a.ll
datalayout-b.ll
distinct.ll Utils: Keep distinct MDNodes distinct in MapMetadata() 2015-01-08 22:42:30 +00:00
drop-debug.bc Work around pr23045 and make it easier to reproduce. 2015-03-27 15:55:06 +00:00
funcimport.ll Restore "Support for ThinLTO function importing and symbol linking." 2015-11-03 00:14:15 +00:00
ident.a.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
ident.b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
linkage2.ll Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
linkage.a.ll
linkage.b.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
linkage.c.ll New bitcode linker flags: 2015-09-01 17:55:55 +00:00
mdlocation.ll DI: Require subprogram definitions to be distinct 2015-08-28 20:26:49 +00:00
metadata-function.ll Linker: Copy over function metadata attachments 2015-04-24 22:07:31 +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-b.ll Add Position-independent Code model Module API. 2014-11-07 04:46:10 +00:00
module-flags-pic-2-b.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
old_global_ctors.3.4.bc
only-needed-named-metadata.ll Ensure ModuleLinker materializes complete comdat groups 2015-11-10 21:09:06 +00:00
opaque.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +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 Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
override-with-internal-linkage.ll Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
override.ll Linker: Add flag to override linkage rules 2015-04-22 04:11:00 +00:00
pr21374.ll Ask the module for its the identified types. 2014-12-03 07:18:23 +00:00
pr22807-1.ll Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
pr22807-2.ll Remember to move a type to the correct set when setting the body. 2015-03-06 00:50:21 +00:00
PR8300.a.ll
PR8300.b.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
PR11464.a.ll
PR11464.b.ll [opaque pointer type] Add textual IR support for explicit type parameter to getelementptr instruction 2015-02-27 19:29:02 +00:00
redefinition.ll Unify and update link-messages.ll and redefinition.ll. NFC. 2014-10-31 16:52:30 +00:00
replaced-function-matches-first-subprogram.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
subprogram-linkonce-weak.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
targettriple-a.ll [LinkModules] Change the way ModuleLinker merges triples. 2015-02-13 00:40:41 +00:00
targettriple-b.ll [LinkModules] Change the way ModuleLinker merges triples. 2015-02-13 00:40:41 +00:00
targettriple-c.ll [LinkModules] Change the way ModuleLinker merges triples. 2015-02-13 00:40:41 +00:00
testlink.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
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-types2.ll Add a test showing what the linker IdentifiedStructTypes is for. 2014-12-01 03:20:57 +00:00
type-unique-dst-types3.ll Add a test showing what the linker IdentifiedStructTypes is for. 2014-12-01 03:20:57 +00:00
type-unique-inheritance-a.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
type-unique-inheritance-b.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
type-unique-name.ll Set the body of a new struct as soon as it is created. 2014-11-25 15:33:40 +00:00
type-unique-opaque.ll Add back r222727 with a fix. 2014-11-28 16:41:24 +00:00
type-unique-simple2-a.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
type-unique-simple2-b.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
type-unique-unrelated2.ll Add an interesting test that we already get right. NFC. 2014-11-25 03:47:57 +00:00
type-unique-unrelated3.ll Add an interesting test that we already get right. NFC. 2014-11-25 03:47:57 +00:00
unique-fwd-decl-b.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
visibility.ll [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00