Shankar Easwaran
2013-Nov-11 03:10 UTC
[LLVMdev] [lld] consolidating the usage of saving references
Hi, It looks like each flavor chooses to save references in its own way. The GNU flavor (ELF) uses a single vector of references and uses referenceStartIndex/referenceEndIndex to point to the references for each DefinedAtom. Darwin(Mach-O) / WinLink (PECOFF) uses a different way of storing references ? Is there a plan to make the WinLink/Darwin(Mach-O) use a single vector of references too at some point in time. There are merits/demerits of the approach that the Gnu flavor uses but it would be nice if we settle on one design for storing references. Thanks Shankar Easwaran -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
Rui Ueyama
2013-Nov-11 05:06 UTC
[LLVMdev] [lld] consolidating the usage of saving references
Look at COFFBaseDefinedAtom in lib/ReaderWriter/PECOFF/Atoms.h for PE/COFF.
Specifically, these functions and a field are for References.
void addReference(std::unique_ptr<COFFReference> reference);
virtual reference_iterator begin() const;
virtual reference_iterator end() const;
virtual const Reference *derefIterator(const void *iter) const;
virtual void incrementIterator(const void *&iter) const;
std::vector<std::unique_ptr<COFFReference>> _references;
As you can see References are stored into a single vector already. We don't
have anything similar to reference{Start,End}Index because we have never
needed it. Iterator knows where it is pointing to, so I don't see any
reason why DefiendAtom have to know it separately. What is the use case of
the fields in ELF?
On Sun, Nov 10, 2013 at 7:10 PM, Shankar Easwaran
<shankare at codeaurora.org>wrote:
> Hi,
>
> It looks like each flavor chooses to save references in its own way.
>
> The GNU flavor (ELF) uses a single vector of references and uses
> referenceStartIndex/referenceEndIndex to point to the references for each
> DefinedAtom.
>
> Darwin(Mach-O) / WinLink (PECOFF) uses a different way of storing
> references ?
>
> Is there a plan to make the WinLink/Darwin(Mach-O) use a single vector of
> references too at some point in time.
>
> There are merits/demerits of the approach that the Gnu flavor uses but it
> would be nice if we settle on one design for storing references.
>
> Thanks
>
> Shankar Easwaran
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by the Linux Foundation
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20131110/5599f149/attachment.html>