[LLVMdev] LLD: Simplify LayoutPass

Rui Ueyama ruiu at google.com
Wed Jan 21 20:07:14 PST 2015


In r226336 I shove off 1.2 seconds out of 9.8 seconds for lld to link lld.
That's done by parallelizing archive member parsing. But I realized that
was not the slowest pass.

The single slowest pass in LLD is LayoutPass. Only sort() at the last of
Layoutpass::perform takes about 3 seconds (one third of total execution
time). It is because the comparison function passed to sort, compareAtoms,
does too much stuff.

It looks to me that the entire pass is overkill. We don't really need that
complexity there. I think nobody is actually depends on the details of the
pass's behavior.

I'd like to simplify LayoutPass, so that the pass sorts atoms only by file
position and position in file (that means atoms are sorted in the same
order as the command line.) I believe that should be enough and we can
still keep output the same.

Any comments?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150121/8246d45f/attachment.html>


More information about the llvm-dev mailing list