[PATCH] Do not use layout-before to layout atoms.

Rui Ueyama ruiu at google.com
Thu Mar 27 14:31:21 PDT 2014


Can you elaborate a bit? I don't understand what you mean.

Removing kindLayoutBefore will affect dead stripping because it would lost
back references for kindLayoutAfter, so it would collect live atoms.

I'm not removing kindLayoutBefore in this patch. This patch is just to stop
using kindLayoutBefore in the layout pass. The dead stripping pass is still
using it. Removing kindLayoutBefore entirety is the last step, after
modifying the dead stripping pass so that the pass works without
kindLayoutBefore (only with kindLayoutAfter and kindInGroup).


On Thu, Mar 27, 2014 at 12:45 PM, Shankar Easwaran
<shankare at codeaurora.org>wrote:

>  On 3/27/2014 2:33 PM, Rui Ueyama wrote:
>
>  (I accidentally hit "reply" instead of "reply all", so sending it again.)
>
>  I'll add "alias" references if no objections from other reviewers. I'll
> probably add ELF symbol aliasing support with it, so hold on.
>
>  We cannot remove kindLayoutBefore because doing it would break dead
> stripping pass. We still need it for GC as GC needs backward references.
>
>  To remove kindLayoutBefore, we have to modify dead striping pass so that
> it creates back references internally from forward references and use it
> while collecting dead objects. I think I'm going to make such change, but
> it's going a bit large.
>
>  Submitting this change first and then doing the next step in a following
> patch would be better than merging the two together. Incremental change is
> easier to bisect in case it would breaks omething, and it's easy to
> understand for reviewers, too.
>
>  Do we have a flag to garbage collect atoms with lld in the current
> implementation ? If not removing kindLayoutBefore wouldnot affect anything
> right ?
>
> 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-commits/attachments/20140327/4ad0b6ed/attachment.html>


More information about the llvm-commits mailing list