[LLVMdev] [lld] Modeling ELF FileNodes/ControlNodes (Group's) in lld
Shankar Easwaran
shankare at codeaurora.org
Thu Sep 5 11:58:31 PDT 2013
On 9/5/2013 1:40 PM, Nick Kledzik wrote:
> The way darwin works with the current scheme is that the files are added to InputFiles in command line order, then forEachInitialAtom() walks the whole list but only operates on the non-library (i.e. object files) and searchLibraries() only operates on library files.
>
> If we have the Resolver walk the graph, then either:
> 1) We need some option for darwin and gnu to work differently, or
> 2) Have the darwin driver construct the graph with all libraries in one group at the end. As long as that is straight forward to do, it seems simpler and also captures the darwin difference that all libraries are always repeatedly searched.
>
> -Nick
One way, I can think of this being done is to get all the libraries that
are specified in the command line and create a group node, and add it
after the command line is processed to the inputGraph.
PS : Does Darwin have a command line option to handle files in the order
specified in the command line for libraries ? If so, then the above
would break
I am planning to support other operations too like
inputElement->setPosition(InputGraph::Top)
inputElement->setPosition(InputGraph::Last)
inputElement->setPosition(InputGraph::Position, <value>)
The user has to explicitly call a seperate api so that the elements are
ordered according to whatever the user wants.
inputGraph->insertInputElementAt(InputGraph::Top,
std::vector<std::unique_ptr<InputElement>>&)
inputGraph->insertInputElementAt(InputGraph::Last,
std::vector<std::unique_ptr<InputElement>>&)
inputGraph->insertInputElementAt(InputGraph::Position, element,
std::vector<std::unique_ptr<InputElement>>&)
The user has to explicitly call a seperate api so that the elements for
ordinals to be set appropriately.
Thanks
Shankar Easwaran
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
More information about the llvm-dev
mailing list