<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Hi Kumar, </div><div><br></div><div>Are the data below all collected when only one function is picked for instrumentation?  Do you have data when such manual selection is not done?</div><div><br></div><div>thanks,</div><div><br></div><div>David</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
numpaths = Number of possible paths<br>
epp+compile = Time taken to compute encoding, insert instrumentation and compile to executable<br>
compile = Time taken to compile to executable<br>
execpaths = Number of paths dynamically executed<br>
epp-exec-time = Execution time with instrumentation<br>
exec-time = Normal execution time<br>
epp-bin-size = Size of instrumented binary in bytes<br>
bin-size = Size of binary<br>
** size of shared library in bytes = 598042<br>
<br>
<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| benchmark     | numpaths | epp+compile | compile   | execpaths | epp-exec-time | exec-time | epp-bin-size | bin-size |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| blks          | 2        | 0m1.036s    | 0m1.008s  | 2         | 0m3.643s      | 0m3.205s  | 155931       | 155459   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| bodytrack     | 29       | 0m4.907s    | 0m4.881s  | 5         | 0m14.786s     | 0m1.943s  | 2125256      | 2124224  |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| bzip2         | 60       | 0m1.274s    | 0m1.268s  | 3         | 0m9.441s      | 0m9.624s  | 259125       | 258477   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| ferret        | 360921   | 0m26.208s   | 0m26.102s | 40        | 0m10.342s     | 0m6.224s  | 8342571      | 8338588  |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| fluidanimate  | 384117   | 0m0.895s    | 0m0.869s  | 88        | 0m56.631s     | 0m1.294s  | 202702       | 197878   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| freqmine      | 45       | 0m1.220s    | 0m1.214s  | 18        | 0m22.150s     | 0m5.515s  | 278615       | 277656   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| gcc           | 6026     | 0m31.941s   | 0m31.327s | 125       | 1m30.139s     | 0m36.601s | 6991413      | 6991245  |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| hmmer         | 1882     | 0m3.193s    | 0m3.232s  | 65        | 0m58.911s     | 0m2.474s  | 744510       | 742806   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| mcf           | 230      | 0m0.838s    | 0m0.830s  | 10        | 0m11.097s     | 0m3.074s  | 162680       | 161736   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| mcf2000       | 1155     | 0m0.859s    | 0m0.853s  | 26        | 0m24.169s     | 0m4.625s  | 166092       | 165213   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| povray        | 17       | 0m8.543s    | 0m8.552s  | 4         | 9m24.562s     | 5m39.295s | 2388152      | 2387960  |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| sjeng         | 158740   | 0m1.648s    | 0m1.637s  | 280       | 0m20.786s     | 0m5.229s  | 368841       | 368009   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| soplex        | 30       | 0m4.849s    | 0m4.848s  | 24        | 7m28.151s     | 4m10.813s | 1244775      | 1242063  |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| sphinx        | 26       | 0m2.212s    | 0m2.198s  | 5         | 1m36.291s     | 0m13.811s | 543534       | 543358   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| streamcluster | 21121728 | 0m0.947s    | 0m0.908s  | 33        | 0m50.212s     | 0m5.986s  | 191981       | 185438   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| swaptions     | 20655    | 0m0.965s    | 0m0.950s  | 13        | 0m0.263s      | 0m0.178s  | 193841       | 184274   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| h264ref       | 24130    | 0m4.278s    | 0m4.272s  | 76        | 3m26.701s     | 3m4.461s  | 816660       | 812396   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| lbm           | 8        | 0m0.824s    | 0m0.815s  | 5         | 6m29.685s     | 1m39.180s | 150871       | 150327   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
| namd          | 59598954 | 0m4.124s    | 0m4.139s  | 43        | 18m36.447s    | 6m50.288s | 925863       | 925271   |<br>
+---------------+----------+-------------+-----------+-----------+---------------+-----------+--------------+----------+<br>
<span class=""><br>
<br>
<br>
> > Open Issues :<br>
> > + Update PathProfileInfo on CFG transformations ?<br>
<br>
> Could you clarify what this means?<br>
<br>
</span>Changing the control flow graph of a routine may invalidate collected path profiles. For example, splitting a block with an unconditional branch does not change the profile, but introducing a conditional branch invalidates the profile. The issue I would like to address is which transformations should we allow as safe transformations and how should we update the internal path profile data structures if we allow this at all.<br>
<span class=""><br>
> > + Verify with PGOEdge info ?<br>
<br>
> Ditto.<br>
<br>
</span>Verification with PGOEdge info implies that the edge frequencies derived from path profiles and via instrprof should be equal.<br>
<span class=""><br>
> > + Handle setjmp, longjmp, early program termination, noreturn calls<br>
<br>
> How do you handle indirect calls?<br>
<br>
</span>No special handling of indirect calls as path profiles are intra-procedural and control returns to same basic block<br>
after call in the general case. For the above mentioned cases, control may not return.<br>
<br>
<br>
Regards,<br>
Snehasish<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div></div>