hanchenye-llvm-project/lld/test/core
Rui Ueyama a5f2816b1c Convert CoreInputGraph.
This is a part of InputGraph cleanup to represent input files as a flat
list of Files (and some meta-nodes for group etc.)

We cannot achieve that goal in one gigantic patch, so I split the task
into small steps as shown below.

(Recap the progress so far: Currently InputGraph contains a list of
InputElements. Each InputElement contain one File (that used to have
multiple Files, but I eliminated that use case in r223867). Files are
currently instantiated in Driver::link(), but I already made a change
to separate file parsing from object instantiation (r224102), so we
can safely instantiate Files when we need them, instead of wrapping
a file with the wrapper class (FileNode class). InputGraph used to
act like a generator class by interpreting groups by itself, but it's
now just a container of a list of InputElements (r223867).)

1. Instantiate Files in the driver and wrap them with WrapperNode.
WrapperNode is a temporary class that allows us to instantiate Files
in the driver while keep using the current InputGraph data structure.

This patch demonstrates how this step 1 looks like, using Core driver
as an example.

2. Do the same thing for the other drivers.

When step 2 is done, an InputGraph consists of GroupEnd objects or
WrapperNodes each of which contains one File. Other types of
FileNode subclasses are removed.

3. Replace InputGraph with std::vector<std::unique_ptr<InputElement>>.
InputGraph is already just a container of list of InputElements,
so this step removes that needless class.

4. Remove WrapperNode.

We need some code cleanup between each step, because many classes
do a bit odd things (e.g. InputGraph::getGroupSize()). I'll straight
things up as I need to.

llvm-svn: 225313
2015-01-06 23:06:49 +00:00
..
absolute-basic.objtxt
absolute-local.objtxt
archive-basic.objtxt
archive-chain.objtxt
archive-tentdef-search.objtxt
associates.objtxt [PECOFF] Support COMDAT associative sections. 2014-06-17 16:19:33 +00:00
auto-hide-coalesce.objtxt
code-model-attributes.objtxt [ELF] Add CodeModel attribute to the DefinedAtom class 2014-11-13 07:03:41 +00:00
constants-coalesce.objtxt
cstring-coalesce.objtxt
custom-section-coalesce.objtxt Preserve custom section names when coalescing. 2014-10-02 17:22:05 +00:00
custom-section.objtxt
dead-strip-attributes.objtxt
dead-strip-basic.objtxt
dead-strip-globals.objtxt
dead-strip-reverse.objtxt
error-atom-attribute.objtxt
error-atom-content-byte-value.objtxt
error-atom-content-bytes.objtxt
error-atom-type.objtxt
error-atom-undefined-wrong-attribue.objtxt
error-duplicate-absolutes.objtxt
error-file-attribute.objtxt
error-fixup-attribute.objtxt
error-fixup-target.objtxt
fixups-addend.objtxt
fixups-dup-named.objtxt
fixups-named.objtxt
fixups-unnamed.objtxt
gnulinkonce-rearrange-resolve.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
gnulinkonce-remaining-undef.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
gnulinkonce-resolve.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
gnulinkonce-simple.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
ingroup-test-big.objtxt
ingroup-test-loop.objtxt
ingroup-test-with-layout-after.objtxt
ingroup-test.objtxt
inline-coalesce.objtxt
layout-transitivity.objtxt
layoutafter-test.objtxt
multiple-def-error.objtxt
permissions.objtxt
section-position.objtxt
sectiongroup-gnulinkonce-error.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
sectiongroup-rearrange-resolve.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
sectiongroup-remaining-undef.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
sectiongroup-resolve.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
sectiongroup-simple.objtxt Remove group-parent references. 2014-06-03 03:07:49 +00:00
shared-library-basic.objtxt
shared-library-coalesce.objtxt
tent-merge.objtxt
undef-coalesce-error.objtxt
undef-coalesce.objtxt
undef-fallback.objtxt
undef-weak-coalesce.objtxt
weak-coalesce.objtxt