<div dir="ltr">Ping... with the updated code size impact data, any more comments? Any more data that would be interesting to collect?<div><br></div><div>Thanks,</div><div>Dehao</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 2, 2017 at 2:07 PM, Dehao Chen <span dir="ltr"><<a href="mailto:dehao@google.com" target="_blank">dehao@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 dir="ltr">
        
        
        
        



Here is the code size impact for clang, chrome and 24 google internal benchmarks (name omited, 14 15 16 are encoding/decoding benchmarks similar as h264). There are 2 columns, for threshold 300 and 450 respectively.<div><br></div><div>I also tested the llvm test suite. Changing the threshold to 300/450 does not affect code gen for any binary in the test suite.</div><div><br></div><div><br><table cellspacing="0" border="0">
        <colgroup span="3" width="85"></colgroup>
        <tbody><tr>
                <td height="17" align="left"><br></td>
                <td align="right">300</td>
                <td align="right">450</td>
        </tr>
        <tr>
                <td height="17" align="left">clang</td>
                <td align="right">0.30%</td>
                <td align="right">0.63%</td>
        </tr>
        <tr>
                <td height="17" align="left">chrome</td>
                <td align="right">0.00%</td>
                <td align="right">0.00%</td>
        </tr>
        <tr>
                <td height="17" align="right">1</td>
                <td align="right">0.27%</td>
                <td align="right">0.67%</td>
        </tr>
        <tr>
                <td height="17" align="right">2</td>
                <td align="right">0.44%</td>
                <td align="right">0.93%</td>
        </tr>
        <tr>
                <td height="17" align="right">3</td>
                <td align="right">0.44%</td>
                <td align="right">0.93%</td>
        </tr>
        <tr>
                <td height="17" align="right">4</td>
                <td align="right">0.26%</td>
                <td align="right">0.53%</td>
        </tr>
        <tr>
                <td height="17" align="right">5</td>
                <td align="right">0.74%</td>
                <td align="right">2.21%</td>
        </tr>
        <tr>
                <td height="17" align="right">6</td>
                <td align="right">0.74%</td>
                <td align="right">2.21%</td>
        </tr>
        <tr>
                <td height="17" align="right">7</td>
                <td align="right">0.74%</td>
                <td align="right">2.21%</td>
        </tr>
        <tr>
                <td height="17" align="right">8</td>
                <td align="right">0.46%</td>
                <td align="right">1.05%</td>
        </tr>
        <tr>
                <td height="17" align="right">9</td>
                <td align="right">0.35%</td>
                <td align="right">0.86%</td>
        </tr>
        <tr>
                <td height="17" align="right">10</td>
                <td align="right">0.35%</td>
                <td align="right">0.86%</td>
        </tr>
        <tr>
                <td height="17" align="right">11</td>
                <td align="right">0.40%</td>
                <td align="right">0.83%</td>
        </tr>
        <tr>
                <td height="17" align="right">12</td>
                <td align="right">0.32%</td>
                <td align="right">0.65%</td>
        </tr>
        <tr>
                <td height="17" align="right">13</td>
                <td align="right">0.31%</td>
                <td align="right">0.64%</td>
        </tr>
        <tr>
                <td height="17" align="right">14</td>
                <td align="right">4.52%</td>
                <td align="right">8.23%</td>
        </tr>
        <tr>
                <td height="17" align="right">15</td>
                <td align="right">9.90%</td>
                <td align="right">19.38%</td>
        </tr>
        <tr>
                <td height="17" align="right">16</td>
                <td align="right">9.90%</td>
                <td align="right">19.38%</td>
        </tr>
        <tr>
                <td height="17" align="right">17</td>
                <td align="right">0.68%</td>
                <td align="right">1.97%</td>
        </tr>
        <tr>
                <td height="17" align="right">18</td>
                <td align="right">0.21%</td>
                <td align="right">0.48%</td>
        </tr>
        <tr>
                <td height="17" align="right">19</td>
                <td align="right">0.99%</td>
                <td align="right">3.44%</td>
        </tr>
        <tr>
                <td height="17" align="right">20</td>
                <td align="right">0.19%</td>
                <td align="right">0.46%</td>
        </tr>
        <tr>
                <td height="17" align="right">21</td>
                <td align="right">0.57%</td>
                <td align="right">1.62%</td>
        </tr>
        <tr>
                <td height="17" align="right">22</td>
                <td align="right">0.37%</td>
                <td align="right">1.05%</td>
        </tr>
        <tr>
                <td height="17" align="right">23</td>
                <td align="right">0.78%</td>
                <td align="right">1.30%</td>
        </tr>
        <tr>
                <td height="17" align="right">24</td>
                <td align="right">0.51%</td>
                <td align="right">1.54%</td>
        </tr>
</tbody></table></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 1, 2017 at 6:08 PM, Mikhail Zolotukhin via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</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><span><blockquote type="cite"><div>On Feb 1, 2017, at 4:57 PM, Xinliang David Li via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="m_8897563994913029058m_6216879383400100851Apple-interchange-newline"><div><div dir="ltr">clang, chrome, and some internal large apps are good candidates for size metrics.</div></div></blockquote></span>I'd also add the standard LLVM testsuite just because it's the suite everyone in the community can use.<div><br></div><div>Michael<br><div><blockquote type="cite"></blockquote></div></div><div><div class="m_8897563994913029058h5"><blockquote type="cite"><div><div dir="ltr"><div><br></div><div>David</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 1, 2017 at 4:47 PM, Chandler Carruth via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I had suggested having size metrics from somewhat larger applications such as Chrome, Webkit, or Firefox; clang itself; and maybe some of our internal binaries with rough size brackets?</div><div class="m_8897563994913029058m_6216879383400100851HOEnZb"><div class="m_8897563994913029058m_6216879383400100851h5"><br><div class="gmail_quote"><div dir="ltr">On Wed, Feb 1, 2017 at 4:33 PM Dehao Chen <<a href="mailto:dehao@google.com" target="_blank">dehao@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">With the new data points, any comments on whether this can justify setting fully inline threshold to 300 (or any other number) in O2? I can collect more data points if it's helpful.<div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">Thanks,</div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">Dehao</div></div><div class="gmail_extra m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><div class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">On Tue, Jan 31, 2017 at 3:20 PM, Dehao Chen <span dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><<a href="mailto:dehao@google.com" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg" target="_blank">dehao@google.com</a>></span> wrote:<br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><blockquote class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">Recollected the data from trunk head with stddev data and more threshold data points attached:<div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">Performance:</div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
        
        
        
        



<table cellspacing="0" border="0" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
        <colgroup span="6" width="85" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></colgroup>
        <tbody class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="left" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></td>
                <td align="left" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">stddev/mean</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">300</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">450</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">600</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">750</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">403</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.37%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.11%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.11%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.09%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.79%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">433</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.14%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.51%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.25%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">-0.63%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">-0.29%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">445</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.08%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.48%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.89%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.12%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.83%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">447</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.16%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">3.50%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.69%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">3.66%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">3.59%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">453</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.11%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">1.49%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.45%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">-0.07%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.78%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">464</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.17%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.75%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">1.80%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">1.86%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">1.54%</td>
        </tr>
</tbody></table><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">Code size:</div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
        
        
        
        



<table cellspacing="0" border="0" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
        <colgroup span="5" width="85" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></colgroup>
        <tbody class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="left" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">300</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">450</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">600</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">750</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">403</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.56%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.41%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.74%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">3.75%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">433</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.96%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.84%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">4.19%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">4.87%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">445</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.16%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">3.62%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">4.48%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">5.88%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">447</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.96%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">5.09%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">6.74%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">8.89%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">453</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">0.94%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">1.67%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.73%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">2.96%</td>
        </tr>
        <tr class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">
                <td height="17" align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">464</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">8.02%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">13.50%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">20.51%</td>
                <td align="right" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">26.59%</td>
        </tr>
</tbody></table><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">Compile time is proportional in the experiments and more noisy, so I did not include it.</div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">We have >2% speedup on some google internal benchmarks when switching the threshold from 150 to 300.</div><span class="m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241HOEnZb m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><font color="#888888" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">Dehao</div></font></span></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241HOEnZb m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241h5"><div class="gmail_extra m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><div class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">On Mon, Jan 30, 2017 at 5:06 PM, Chandler Carruth <span dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><<a href="mailto:chandlerc@google.com" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg" target="_blank">chandlerc@google.com</a>></span> wrote:<br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><blockquote class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><div class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><span class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><div dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">On Mon, Jan 30, 2017 at 4:59 PM Mehdi Amini <<a href="mailto:mehdi.amini@apple.com" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg" target="_blank">mehdi.amini@apple.com</a>> wrote:<br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div></span><span class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><blockquote class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><blockquote type="cite" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div></blockquote></div></div><div style="word-wrap:break-word" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><blockquote type="cite" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><blockquote class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg" 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"><div dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655m_-6293897042106820945h5 m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><blockquote class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg" 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"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655m_-6293897042106820945m_-4486181801685859403gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg" style="word-wrap:break-word"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655m_-6293897042106820945m_-4486181801685859403gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655m_-6293897042106820945m_-4486181801685859403gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655m_-6293897042106820945m_-4486181801685859403gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655m_-6293897042106820945m_-4486181801685859403gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg">Another question is about PGO integration: is it already hooked there? Should we have a more aggressive threshold in a hot function? (Assuming we’re willing to spend some binary size there but not on the cold path).</div></div></div></blockquote><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"></div></div></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg">I would even wire the *unrolling* the other way: just suppress unrolling in cold paths to save binary size. rolled loops seem like a generally good thing in cold code unless they are having some larger impact (IE, the loop itself is more expensive than the unrolled form).</div></div></div></blockquote><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg">Agree that we could suppress unrolling in cold path to save code size. But that's orthogonal with the propose here. This proposal focuses on O2 performance: shall we have different (higher) fully unroll threshold than dynamic/partial unroll.</div></div></div></blockquote><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"></div></div></div><div style="word-wrap:break-word" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg">I agree that this is (to some extent) orthogonal, and it makes sense to me to differentiate the threshold for full unroll and the dynamic/partial case.</div></div></div></blockquote><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div></span><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">There is one issue that makes these not orthogonal.</div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">If even *static* profile hints will reduce some of the code size increase caused by higher unrolling thresholds for non-cold code, we should factor that into the tradeoff in picking where the threshold goes.</div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg">However, getting PGO into the full unroller is currently challenging outside of the new pass manager. We already have some unfortunate hacks around this in LoopUnswitch that are making the port of it to the new PM more annoying.</div><blockquote class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><blockquote type="cite" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><blockquote class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg" 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"><div dir="ltr" class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><div class="gmail_quote m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"><span class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg m_8897563994913029058m_6216879383400100851m_8709703343599191588m_1694617720154745241m_6119381627642025574m_-8823773316722963655gmail_msg"></span></div></div></blockquote></div></div></blockquote></div></div></blockquote></div></div>
</blockquote></div><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div>
</div></div></blockquote></div><br class="m_8897563994913029058m_6216879383400100851m_8709703343599191588gmail_msg"></div>
</blockquote></div>
</div></div><br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">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/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
______________________________<wbr>_________________<br>LLVM Developers mailing list<br><a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br></div></blockquote></div></div></div><br></div></div><br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">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/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>