[llvm-dev] lld: ELF/COFF main() interface

Chandler Carruth via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 22 00:11:01 PST 2016


On Thu, Jan 21, 2016 at 8:44 PM Rafael EspĂ­ndola <rafael.espindola at gmail.com>
wrote:

> > Also, one of the other possible motivations of using LLD directly from
> Clang would be to avoid process overhead on operating systems where that is
> a much more significant part of the compile time cost. We could today
> actually take the fork out of the Clang driver because the Clang frontend
> *is* designed in this way. But we would also need LLD to work in this way.
>
> Then go change clang and send a patch for lld once you are done. It will
> be interested to see if you can measure a single fork in an entire build.
>
> Even better, please finish the new pass manager before working on clang
> forking cc1.
>
Trying to do that.


> In any case, I have simply wasted too much time on a thread with someone
> with no patches on the new elf linker. It is really annoying that you don't
> put effort into it and seem entitled to dictate its direction.
>
I'm working really hard to dictate as little as possible here. However, I
think it is a mistake for the LLD developers (and I agree that I am *not*
one of them) to ignore specific broad design advice from the rest of the
LLVM community. We have historically been a cohesive community and project,
and I think we gain tremendous strength from that. However, to retain that
cohesion as a community, I think it is actually important to seriously
consider the high level design and architecture feedback from the larger
community.

I'm sorry that I haven't been able to personally contribute to LLD. I
actually would like to do that because I do care about it. But until then,
I clearly can't dictate how you write the code and complain that you should
format things differently, etc. I have actually contributed a few patches
to COFF port of LLD, but that hardly counts, I know.

But I had hoped you would be more interested in my design feedback. I have
to admit I'm pretty disappointed in your response. I think that a deep
design discussion like this is never a waste of time.

As an example, even though Philip and Sanjoy haven't really been sending
lots of patches to the pass manager and some of the crazier call graph
analyses in LLVM, I know that this is because they are working on other
important parts of LLVM. And when they started looking and these parts and
raised very serious concerns about the design of the LazyCallGraph to me
(sorry, it was at a social, so I can't send a link), I think that was
entirely appropriate. I didn't agree with their concerns, even after a very
long debate. But I still don't think it was a waste of time. As it happens,
I now *know* it was not a waste of time, because their points kept coming
back to me over the past couple of months, and surprise surprise, as I dug
deeper into the call graph passes *they were right*. Completely. Having had
that discussion was extremely valuable because I probably would have caught
on a lot less quickly without it. In other cases Duncan provided excellent
feedback that I immediately incorporated. And Duncan Sands was instrumental
in giving me design feedback of SROA even though I was the only one coding
on it.

Anyways, I hope you reconsider whether this is a waste. I don't think it is.

Also, I don't think being dismissive of potential new users of LLVM (and
LLD is still part of LLVM) is the right thing for the project, and so I
don't think you should continue to do that. My two cents as a member of the
larger LLVM community and project. By all means, solicit opinions from
others in the community about the most appropriate approach here.

If you want to kick us out of the llvm project, please start a thread on
> llvm-dev.
>
Note, this *is* a thread on llvm-dev, because we have worked to keep the
LLD development *part* of the LLVM project and community.

In case there was any confusion, I don't want to kick anyone out of the
community. I'm trying to make LLD more appealing to more people *within*
the community.


> I will go back to implementing the linker.
>
This comes off as really passive aggressive to me, and that makes this
discussion much less productive IMO. It would help me (and I suspect
others) if you could try to change the tone you are using here.

>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160122/b037f505/attachment.html>


More information about the llvm-dev mailing list