hanchenye-llvm-project/lld/lib/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
..
CMakeLists.txt Fix build breakage. 2014-06-03 07:53:37 +00:00
DefinedAtom.cpp [mach-o] Support linker synthesized mach_header symbols. 2014-11-12 22:21:56 +00:00
Error.cpp Replace ReaderError with DynamicError. 2014-12-15 12:20:13 +00:00
File.cpp Partially roll back r217324. 2014-09-08 18:01:42 +00:00
InputGraph.cpp Convert CoreInputGraph. 2015-01-06 23:06:49 +00:00
LinkingContext.cpp [Core] Remove function to not override RoundTripPasses. 2014-12-01 20:28:54 +00:00
Makefile Initial set of Makefiles 2014-06-04 09:54:07 +00:00
Resolver.cpp Simplify InputGraph API. 2014-12-14 02:04:01 +00:00
SymbolTable.cpp Follow-up to r221913. Fix some -Wcast-qual warning reasons. 2014-11-14 07:15:43 +00:00
TODO.txt