[LLVMdev] LLD: Simplify LayoutPass

Michael Spencer bigcheesegs at gmail.com
Mon Jan 26 04:11:33 PST 2015


On Thu, Jan 22, 2015 at 4:07 AM, Rui Ueyama <ruiu at google.com> wrote:
> 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?
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>

Have you tried switching to a parallel sort? On windows I got a pretty
good perf increase by doing that.

I would also love to simplify this pass, as long as we make it clear
what guarantees we are making.

- Michael Spencer



More information about the llvm-dev mailing list