<div dir="ltr">Hi Diego,<div><br></div><div>Off-topic from the patch, but can you say a bit more about this effective this approach ended up being in GCC? Is there any kind of performance analysis showing the wins from AutoFDO, or comparing its accuracy to traditional FDO?</div>
<div><br></div><div> - Daniel</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Sep 25, 2013 at 9:29 AM, Diego Novillo <span dir="ltr"><<a href="mailto:dnovillo@google.com" target="_blank">dnovillo@google.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Wed, Sep 25, 2013 at 12:11 PM, Evan Cheng <<a href="mailto:evan.cheng@apple.com">evan.cheng@apple.com</a>> wrote:<br>

> Hi Diego,<br>
><br>
> I am curious. Why is this called automatic PGO? Why is it automatic?<br>
<br>
</div>The name is derived from the first implementation that we implemented<br>
at Google (<a href="http://gcc.gnu.org/wiki/AutoFDO" target="_blank">http://gcc.gnu.org/wiki/AutoFDO</a>). It's "automatic" because<br>
it does not rely on instrumentation. The goal is to use external<br>
sources of profile (the most common example is Perf or Oprofile),<br>
which provide low overhead and can be applied to production<br>
deployments. So, we can also get rid of the traditional training<br>
phase.<br>
<div class="im"><br>
> Also, why is the auto-profile part done as a scalar transformation pass? Did you consider alternatives?<br>
<br>
</div>This may be just me not knowing where to do this properly. Initially,<br>
I had implemented it as an analysis, but since it modifies the code I<br>
was violating the principle that analyses are not supposed to modify<br>
the IR. The transformation does not need interprocedural information,<br>
so putting it in the scalar transformations module seemed like a good<br>
fit.<br>
<br>
I'm open to better options, of course.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
Diego.<br>
</font></span><div class="HOEnZb"><div class="h5">_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>