<div dir="rtl"><div dir="ltr">This make sense. </div><div dir="ltr">There are quite a few passes after inlining, so not processing <span style="font-size:12.8000001907349px">AvailableExternally</span><span style="font-size:12.8000001907349px"> after inlining would save work or are there additional considerations?</span></div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2015-09-01 14:59 GMT+03:00 David Chisnall <span dir="ltr"><<a href="mailto:David.Chisnall@cl.cam.ac.uk" target="_blank">David.Chisnall@cl.cam.ac.uk</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">AvailableExternally functions are available for inlining, if inlining them makes sense.  The inliner makes better decisions after some early optimisation (SROA, CSE, at least).  We can’t rely on this having been done prior to (partial) linking.<br>
<br>
David<br>
<div><div class="h5"><br>
> On 1 Sep 2015, at 10:00, Yaron Keren via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br>
><br>
> AvailableExternallyLinkage functions are not emitted when codegenning, do they really need to go through optimization passes?<br>
><br>
> I tried testing with<br>
><br>
> bool FPPassManager::runOnFunction(Function &F) {<br>
>   if (F.isDeclaration() || F.hasAvailableExternallyLinkage())<br>
><br>
> which failed only one test, LLVM :: CodeGen/X86/hidden-vis-pic.ll, so there is some issue which yet may be solved without doing all the passes.<br>
><br>
</div></div>> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
<br>
</blockquote></div><br></div>