<div dir="ltr">Hello All,<div><br></div><div>A quick note to drop a quick summary of my meeting with Nick (below).</div><div><br></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Stats at: </span><span style="text-decoration:underline;font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><a href="https://docs.google.com/spreadsheets/d/19W1167l9QFrXMXccX4-cValmC5EtlFfUbT7Tr3xaoJs/edit?usp=sharing#gid=1063925865" target="_blank" style="text-decoration:none">https://docs.google.com/spreadsheets/d/19W1167l9QFrXMXccX4-cValmC5EtlFfUbT7Tr3xaoJs/edit?usp=sharing#gid=1063925865</a></span></font></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:arial,helvetica,sans-serif;font-size:large;color:rgb(0,0,0);white-space:pre-wrap;line-height:1.38;background-color:transparent"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:arial,helvetica,sans-serif;font-size:large;color:rgb(0,0,0);white-space:pre-wrap;line-height:1.38;background-color:transparent">Summary/Highlights:</span></p><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">The number of generated intrinsics is significant enough to validate the analysis.</font></span></p></li><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">Also helps to know that the stats are the same regardless of whether the host compiler for the LLVM binaries is GCC or Clang.</font></span></p></li></ul><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">Expected wins from GVN:</font></span></p></li><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Number of equalities propagated:</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">        </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">416</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">   </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">: 1.24%</span></font></p></li><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Number of instructions deleted</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">  </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">43905</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"> </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">: 3.51%</span></font></p></li><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Number of instructions simplified</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">678</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">   </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">: 0.25%</span></font></p></li><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Number of loads deleted</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"> </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">               </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">30762</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"> </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">: 9.26%</span></font></p></li><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Number of loads PRE’d</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"> </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">               </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">9826</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">  </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">: 10.77%</span></font></p></li></ul><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">Undesired losses from GVN</font></span></p></li><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Number of blocks merged</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">  </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">-301</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">  </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">       </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">: -6.51%</span></font></p></li><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">Number of instructions PRE’d</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"> </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">              </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">-1023</span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">  </span><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent">: -2.94%</span></font></p></li></ul><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">Losses could be due to the fact that other parts of the compilation pipeline do not know about invariant intrinsics yet.</font></span></p></li><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">Need to teach other passes about the intrinsics,</font></span></p></li><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:square;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">in particular, -sroa and -early-cse, </font></span></p></li><li dir="ltr" style="list-style-type:square;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">then -functionattrs, -inline, etc…</font></span></p></li></ul><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">The current patch does not have to wait for other passes to learn about the intrinsics, but</font></span></p></li><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">The corresponding Clang patch (generating the intrinsics) will have to wait until the passes are properly taught.</font></span></p></li></ul><li dir="ltr" style="list-style-type:disc;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">A positive effect in -instcombine:</font></span></p></li><ul style="margin-top:0pt;margin-bottom:0pt"><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">Number of constants folds, instructions combined, and instructions sunk.</font></span></p></li><li dir="ltr" style="list-style-type:circle;font-size:14.6667px;color:rgb(0,0,0);vertical-align:baseline;background-color:transparent"><span style="font-size:14.6667px;vertical-align:baseline;white-space:pre-wrap;background-color:transparent"><font face="arial, helvetica, sans-serif">GVN may have set this up well for -instcombine, even though -instcombine does not know about invariant intrinsics yet!</font></span></li></ul></ul><div><font color="#000000" face="arial, helvetica, sans-serif"><span style="font-size:14.6667px;white-space:pre-wrap"><br></span></font></div><br>Have a good weekend!</div><span class=""><font color="#888888">-- Larisse.</font></span><div><font color="#888888"><br></font></div><div><div class="gmail_extra"><br></div></div></div>