[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