1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 06:22:56 +02:00
llvm-mirror/test/tools/gold/X86
Teresa Johnson 00cb55d094 [ThinLTO/gold] Support for getting list of included objects from gold
Summary:
In the distributed backend case, the ThinLink step and the final native
object link are separate processes. This can be problematic when archive
libraries are involved in the link (e.g. via --start-lib/--end-lib
pairs). The linker only includes objects from libraries when
there is a strong reference to them, and depending on the intervening
ThinLTO backend processes' importing/inlining, the strong references
may appear different in the two link steps. See D22356 and D22467
for two scenarios where this causes issues.

To ensure that the final link includes the same objects, this patch
adds support for an "=filename" form of the thinlto-index-only plugin
option, in which case objects gold included in the link are emitted to
the given filename. This should be used as input to the final link (e.g.
via the @filename option to gold), instead of listing all the objects
within --start-lib/--end-lib pairs again.

Note that the support for the gold callback that identifies included
objects was added in gold version 1.12.

Reviewers: davidxl, mehdi_amini

Subscribers: llvm-commits, mehdi_amini

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

llvm-svn: 276450
2016-07-22 18:20:22 +00:00
..
Inputs [ThinLTO/gold] Support for getting list of included objects from gold 2016-07-22 18:20:22 +00:00
alias2.ll
alias.ll
available-externally.ll
bad-alias.ll
bcsection.ll
coff.ll IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
comdat2.ll
comdat.ll [gold] Gate value name discarding under save-temps 2016-04-23 05:15:59 +00:00
common.ll [gold] Fix linkInModule and extend common.ll test. 2016-04-25 18:23:29 +00:00
ctors2.ll
ctors.ll
disable-verify.ll
drop-debug.ll
drop-linkage.ll
emit-llvm.ll IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
invalid.ll
irmover-error.ll Linker: teach the IR mover to return llvm::Error. 2016-05-27 05:21:35 +00:00
linker-script.ll
linkonce-weak.ll
lit.local.cfg
no-map-whole-file.ll
opt-level.ll IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
parallel.ll
pr19901_thinlto.ll
pr19901.ll
pr25907.ll
pr25915.ll
relax-relocs.ll [gold] Really fix test to run on non x86 platforms. 2016-06-28 08:12:09 +00:00
remarks.ll
resolve-to-alias.ll
slp-vectorize.ll
start-lib-common.ll
stats.ll
strip_names.ll [gold] Gate value name discarding under save-temps 2016-04-23 05:15:59 +00:00
thinlto_alias.ll [ThinLTO/gold] Enable summary-based internalization 2016-06-09 01:14:13 +00:00
thinlto_archive.ll [ThinLTO/gold] Handle bitcode archives 2016-05-26 01:46:41 +00:00
thinlto_emit_imports.ll [ThinLTO] Add option to emit imports files for distributed backends 2016-05-10 15:54:09 +00:00
thinlto_emit_linked_objects.ll [ThinLTO/gold] Support for getting list of included objects from gold 2016-07-22 18:20:22 +00:00
thinlto_internalize.ll [ThinLTO/gold] ThinLTO internalization fixes 2016-07-13 03:42:41 +00:00
thinlto_linkonceresolution.ll [ThinLTO/gold] Enable summary-based internalization 2016-06-09 01:14:13 +00:00
thinlto_prefix_replace.ll [ThinLTO] Use semicolon to separate path prefix replacement 2016-05-17 18:43:22 +00:00
thinlto_weak_resolution.ll [ThinLTO/gold] Perform index-based weak/linkonce resolution 2016-07-14 21:13:24 +00:00
thinlto.ll [ThinLTO/gold] Enable symbol resolution in distributed backend case 2016-07-13 16:35:56 +00:00
type-merge2.ll [gold] Gate value name discarding under save-temps 2016-04-23 05:15:59 +00:00
type-merge.ll
unnamed-addr.ll
vectorize.ll
visibility.ll Remove size 1 from check as that isn't part of what the test is meant to be testing. 2016-04-27 15:03:09 +00:00
weak.ll