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

Rui Ueyama ruiu at google.com
Wed Mar 26 14:44:55 PDT 2014


On Wed, Mar 26, 2014 at 2:23 PM, kledzik at apple.com <kledzik at apple.com>wrote:

>
>   Given your description of COFF, I'm not sure follow-on atom/references
> is the right model.
>
>   We probably want a way to order sections.  For instance, the darwin
> linker automatically arranges sections for best performance.
>

Yes, follow-on atom/references model is not probably the best model for
COFF. It's too fine grained. The unit of layout is not an atom (symbol) but
a section. We never want to rearrange or dead-strip each atom. AFAIK so is
true for ELF and Mach-O.

  If in LayoutPass, compareAtomsSub() was enhanced to sort sections, then
> all COFF would need to do is have .text$a sort before .text$b and then
> atoms would be all laid out in the order you want.  The COFF Writer could
> then ignore the trailing $blah and put the range of atoms from all .text$*
> sections into one .text section.
>

Basically agree. Current LayoutPass wouldn't work for the COFF suffix rule
because compareAtomsSub() currently does not sort atoms by section name.
However adding such rule seems to be trivial.


>   In terms of improving performance of this pass, we could add a flag to
> the MergedFile that indicates if any Atom in it has a follow-on (layout
> before or layout after reference).  If there are none (which is common for
> COFF and mach-o), then all the _followOnRoots and _followOnNexts set up can
> be skipped.
>
> http://llvm-reviews.chandlerc.com/D3164
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140326/b15aa3bd/attachment.html>


More information about the llvm-commits mailing list