<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 20, 2013 at 12:39 PM, Chris Lattner <span dir="ltr"><<a href="mailto:clattner@apple.com" target="_blank">clattner@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="im"><div>On Feb 20, 2013, at 8:40 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:</div>
<blockquote type="cite"><p dir="ltr">Sure, if you're willing to sacrifice the possible simplification of all indirect calls in any function that has even one nobuiltin requirement.</p></blockquote></div><div>I don't understand what you mean by this.</div>
</div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><div class="im"><blockquote type="cite"><p dir="ltr">1) annotate calls<br>

Pro: you can inline calls without pessimizing the function you inline into<br>
Con: you pessimize all indirect calls in functions with at least one nobuiltin requirement</p></blockquote></div>Can you give an example illustrating the con?  I don't see how anything is pessimized with this approach.</div>
</div></blockquote><div><br></div><div style><br></div><div style>Yep, sorry - seems I added more confusion to this thread rather than less.<br><br>The only con I can see to the call-site annotation scheme is that you have to annotate all indirect calls (I assume there's some compile-time cost per thing you annotate so one would prefer to annotate fewer things - but probably a relatively small issue?) and then any direct call to the specific functions you care about.<br>
<br></div><div style>If you do this then, yes, you can inline in both ways (inlining other functions into the "don't simplify my calls" function without having to pessimise the inlined code and inline the function into its callers without having to pessimise those either) correctly/optimally.<br>
<br>Just comes at the compile-time cost of annotating all calls to relevant builtins and all indirect calls.</div><div style><br></div><div style>Dandy - sorry for adding to the confusion.<br><br>- David</div></div></div>
</div>