<div dir="ltr">Hi Graham,<div><br></div><div>This looks like an oversight. Agree that the way of passing options through to the linkers is not great as it requires adding plumbing through the driver. But I think that is the best option for now. It would entail adding a gold-plugin option that would be set from the clang driver and using that to set Conf.UseNewPM. Do you want to send this patch?</div><div><br></div><div>Thanks,</div><div>Teresa</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 3, 2017 at 12:38 PM, Graham Yiu via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><p><font size="2">Hi David,</font><br><br><font size="2">Hi David,</font><br><br><font size="2">So I should note that we're only interested in the gold linker with LTO/thinLTO.  It didn't occur to me at the time that we also need to account for lld.</font><br><br><font size="2">I noticed the current way of passing options to gold plugin is slightly hacky, in that there are handful of options we define and pass to gold specifically like -O<#> or -mcpu=[arch].  This seems like it'll be a maintenance nightmare in the future.</font><br><br><font size="2">Also, are there ways to embed options into bitcode files from the compile step?</font><span class=""><br><br><font size="2">Graham Yiu<br>LLVM Compiler Development<br>IBM Toronto Software Lab<br>Office: <a href="tel:(905)%20413-4077" value="+19054134077" target="_blank">(905) 413-4077</a>      C2-707/8200/Markham<br>Email: <a href="mailto:gyiu@ca.ibm.com" target="_blank">gyiu@ca.ibm.com</a></font><br><br></span><img width="16" height="16" src="cid:1__=8FBB0B3DDFF8AE9D8f9e8a93df938690918c8FB@" border="0" alt="Inactive hide details for Davide Italiano ---10/03/2017 03:14:18 PM---On Tue, Oct 3, 2017 at 12:08 PM, Davide Italiano <davide@"><font size="2" color="#424282">Davide Italiano ---10/03/2017 03:14:18 PM---On Tue, Oct 3, 2017 at 12:08 PM, Davide Italiano <<a href="mailto:davide@freebsd.org" target="_blank">davide@freebsd.org</a>> wrote: > On Tue, Oct 3, 2017 a</font><br><br><font size="2" color="#5F5F5F">From:        </font><font size="2">Davide Italiano <<a href="mailto:davide@freebsd.org" target="_blank">davide@freebsd.org</a>></font><br><font size="2" color="#5F5F5F">To:        </font><font size="2">Graham Yiu <<a href="mailto:gyiu@ca.ibm.com" target="_blank">gyiu@ca.ibm.com</a>></font><br><font size="2" color="#5F5F5F">Cc:        </font><font size="2">llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></font><br><font size="2" color="#5F5F5F">Date:        </font><font size="2">10/03/2017 03:14 PM</font><br><font size="2" color="#5F5F5F">Subject:        </font><font size="2">Re: [llvm-dev] New Pass Manager with flto[=thin] not enabled (??)</font><br><font size="2" color="#5F5F5F">Sent by:        </font><font size="2"><a href="mailto:davide.italiano@gmail.com" target="_blank">davide.italiano@gmail.com</a></font><br></p><hr width="100%" size="2" align="left" noshade style="color:#8091a5"><div><div class="h5"><br><br><br><tt><font size="2">On Tue, Oct 3, 2017 at 12:08 PM, Davide Italiano <<a href="mailto:davide@freebsd.org" target="_blank">davide@freebsd.org</a>> wrote:<br>> On Tue, Oct 3, 2017 at 11:57 AM, Graham Yiu via llvm-dev<br>> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>>> Hello,<br>>><br>>> I recently noticed that the new pass manager was not enabled at regular/thin<br>>> LTO link step even if '-fexperimental-new-pass-<wbr>manager' was specified in the<br>>> compile step and link step commands. Upon closer inspection, it seems<br>>> there's so real way to invoke the new pass manager path ('runNewPMPasses' in<br>>> lib/LTO/LTOBackend.cpp) during link step.<br>>><br>><br>> `-fexperimental-new-pass-<wbr>manager` is a compile time flag and has no<br>> effect on the link step IIRC.<br>> You may want to teach the driver to pass the correct flag to the LTO<br>> plugin in gold or to lld.<br>><br>> --<br>> Davide<br><br>For lld in particular, currently there's only the ability to specifiy<br>a custom pass pipeline when passing `--lto-newpm-passes` to the<br>linker. This is because, historically, when I added this flag, the<br>pass manager work was still in progress and the `-O2/LTO` pipeline<br>wasn't fleshed entirely (missing passes & functionality).<br>You can probably add the option to lld now, if you can't/don't know<br>how to do it, I may take a look this weekend.<br><br>Thanks,<br><br>-- <br>Davide<br><br>"There are no solved problems; there are only problems that are more<br>or less solved" -- Henri Poincare<br><br></font></tt><br><br><br>
</div></div><p></p></div>
<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><span style="font-family:Times;font-size:medium"><table cellspacing="0" cellpadding="0"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Teresa Johnson |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a> |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"> 408-460-2413</td></tr></tbody></table></span></div>
</div>