forked from OSchip/llvm-project
![]() 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 |
||
---|---|---|
.. | ||
absolute-basic.objtxt | ||
absolute-local.objtxt | ||
archive-basic.objtxt | ||
archive-chain.objtxt | ||
archive-tentdef-search.objtxt | ||
associates.objtxt | ||
auto-hide-coalesce.objtxt | ||
code-model-attributes.objtxt | ||
constants-coalesce.objtxt | ||
cstring-coalesce.objtxt | ||
custom-section-coalesce.objtxt | ||
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 | ||
gnulinkonce-remaining-undef.objtxt | ||
gnulinkonce-resolve.objtxt | ||
gnulinkonce-simple.objtxt | ||
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 | ||
sectiongroup-rearrange-resolve.objtxt | ||
sectiongroup-remaining-undef.objtxt | ||
sectiongroup-resolve.objtxt | ||
sectiongroup-simple.objtxt | ||
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 |