<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 25, 2017 at 4:11 PM, Chandler Carruth via Phabricator <span dir="ltr"><<a href="mailto:reviews@reviews.llvm.org" target="_blank">reviews@reviews.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">chandlerc added a comment.<br>
<span class=""><br>
In <a href="https://reviews.llvm.org/D33540#765076" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D33540#765076</a>, @davidxl wrote:<br>
<br>
> I was aware  that partial inlining is available in both pre and post link thinLTO pipelines.  It is just not tuned. In fact,  the right thing to do for ThinLTO is only do function outlining in the prelink step -- this will shrink function size and exposes more importing. The regular inliner in the post -link phase can handle those functions properly.   Post thin-link needs another round of partial inlining after the inliner.<br>
<br>
<br>
</span>It sounds like the work around partial inlining really needs a wider discussion around the right design and approach. I can't find any RFC or other discussion about it. Could you write up your plans here and send them out? I think that would be very helpful.<br></blockquote><div><br></div><div>yes  that is the plan.  This is before we turn it on by default.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
When I discussed this a month or 2 ago with Davide I mentioned the long discussion I had about 5 years ago with Owen, Jakub, Eric, and others in the LLVM community around this. At the time, Owen strongly advised against using PartialInlining at all and to focus entirely on outlining to allow the normal inliner to do the partial inlining phase. That was a *long* time ago and so it may no longer be relevant, but we should at least have a pretty clear plan, rationale, concerns/tradeoffs discussion on the dev list.<br></blockquote><div><br></div><div>The mechanism is the same -- mind you that inliner itself can create partial inining opportunities, especially so with the bottom up inliner. </div><div><br></div><div>David</div><div> </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<a href="https://reviews.llvm.org/D33540" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D33540</a><br>
<br>
<br>
<br>
</blockquote></div><br></div></div>