<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 15, 2016 at 2:52 PM, Sean Silva <span dir="ltr"><<a href="mailto:chisophugis@gmail.com">chisophugis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">silvas added inline comments.<br>
<span><br>
================<br>
Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:245<br>
@@ -214,1 +244,3 @@<br>
</span><span>+    addExtensionsToPM(EP_Peephole, MPM);<br>
+  }<br>
   if (!PGOInstrGen.empty()) {<br>
</span>----------------<br>
xur wrote:<br>
<span>> mehdi_amini wrote:<br>
> > Where is this list coming from? How is it computed?<br>
</span><span>> I came up this list. I'm open to add most passes.<br>
</span>In testing our games, we did not observe a significant reduction in instrumentation overhead from adding passes after pre-inlining.<br>
<br>
For example, we started with the set of passes initially proposed in <a href="http://reviews.llvm.org/D15828" rel="noreferrer">http://reviews.llvm.org/D15828</a>. Then we removed individual passes until there was a significant change in performance of the instrumented build. We were able to remove all of them except for the inlining pass.<br>
<br>
I.e. only the inlining pass contributed significantly to reducing overhead of the instrumented build. I would be interested to see the results of this experiment on a subset of your benchmarks.<br>
<br>
I believe the reason for this is that in the codebases we were testing (PS4 games), there are a very large number of calls to trivial single-BB functions (e.g. Vec4::operator+). On one codebase I analyzed, over 80% of all counts in the profile are from single-BB functions.<br>
<br>
<br>
<a href="http://reviews.llvm.org/D21405" rel="noreferrer">http://reviews.llvm.org/D21405</a><br>
<br></blockquote><div>I haven't formally measured the performance impact on the individual passes. But I don't expect them to be big either. I remember I used .483.xalancbmk once to test the performance. The impact for each individual pass was not significant (comparing to the noise -- note spec has pretty big noise level). But I did pick a few functions to see if each pass has changed the IR. The answer was yes. Each pass, more of less, has changed the IR.</div><div><br></div><div>-Rong </div><div> </div></div><br></div></div>