<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Mehdi,<div class=""><br class=""></div><div class="">I did quick measurements for what you were asking.</div><div class=""> <br class=""><div><blockquote type="cite" class=""><div class="">On Jan 13, 2017, at 8:59 PM, Mehdi Amini <<a href="mailto:mehdi.amini@apple.com" class="">mehdi.amini@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Hi,</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">I tend to view this positively, but I feel you could give a few more data, in particular to help answering the questions you raise below.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">On Jan 13, 2017, at 5:54 PM, Quentin Colombet via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class=""><br class="">Hi all,<br class=""><br class="">Now, four backends (if I am counting right: X86, ARM, AArch64, AMDGPU) are working on bringing-up GlobalISel, I’d like to switch the default of the LLVM_BUILD_GLOBAL_ISEL variable in CMake, such that the framework gets built by default.<br class=""><br class="">** Impact of Flipping the Switch **<br class=""><br class="">* Upsides *<br class=""><br class="">For people developing on GlobalISel, it will:<br class="">- Simplify the CMake command to type :)<br class="">- Build/Test GlobalISel on all the LLVM bots<br class=""><br class="">For people not developing on GlobalISel, it will:<br class="">- Test that GlobalISel still works with your changes (make check will test that for you)<br class="">- Allow you to play with it!<br class=""><br class="">Basically flipping the default CMake setting will give access to all the ISel schemes that we have in LLVM, instead of just SDISel and FastISel.<br class=""><br class="">* Downsides *<br class=""><br class="">For people developing on GlobalISel, it will:<br class="">- Leave the status as it is now, meaning that mainly only people working on GlobalISel look at the failures of GlobalISel specific bots<br class=""><br class="">For people not developing for GlobalISel, it will:<br class="">- Increase the compile time since the GlobalISel framework and the related target specific parts will have to be built<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">How long does it take to run `make check` from a clean LLVM build with and without GlobalISel enabled?</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote><div><br class=""></div><div>I get the following numbers with `ninja check`, no additional ninja option, built with LLVM_BUILD_GLOBAL_ISEL=ON|OFF and build type=Debug|Release, all targets:</div><div><br class=""></div><div>* Debug builds:</div><div>without GlobalISel:</div><div><div>real<span class="Apple-tab-span" style="white-space:pre"> </span>18m44.975s</div><div>user<span class="Apple-tab-span" style="white-space:pre"> </span>100m16.226s</div><div>sys<span class="Apple-tab-span" style="white-space:pre"> </span>11m41.555s</div><div><br class=""></div><div><div class="">llc size: 104M</div><div class=""><br class=""></div></div><div>with GlobalISel:</div><div><div>real<span class="Apple-tab-span" style="white-space:pre"> </span>18m49.772s</div><div>user<span class="Apple-tab-span" style="white-space:pre"> </span>101m5.080s</div><div>sys<span class="Apple-tab-span" style="white-space:pre"> </span>11m49.893s</div><div><br class=""></div><div><div class="">llc size: 104M</div></div><div><br class=""></div><div>That’s a 5 sec difference for an almost 19min build and an end result binary of the same size (`du -sh`).</div><div><br class=""></div><div>* Release builds:</div><div><div>without GlobalISel</div><div>real<span class="Apple-tab-span" style="white-space:pre"> </span>13m29.681s</div><div>user<span class="Apple-tab-span" style="white-space:pre"> </span>86m4.347s</div><div>sys<span class="Apple-tab-span" style="white-space:pre"> </span>9m4.553s</div><div><br class=""></div><div><div class="">llc size: 36M</div><div class=""><br class=""></div></div><div>with GlobalISel</div><div><div>real<span class="Apple-tab-span" style="white-space:pre"> </span>13m30.956s</div><div>user<span class="Apple-tab-span" style="white-space:pre"> </span>87m0.109s</div><div>sys<span class="Apple-tab-span" style="white-space:pre"> </span>9m0.999s</div><div class=""><br class=""></div><div class="">llc size: 37M</div><div class=""><br class=""></div><div class="">That’s roughly the same build time for both: ~13min and an end result binary ~3% bigger (1M diff) but for du -sh.</div></div><div class=""><br class=""></div><div class=""><br class=""></div></div></div></div><br class=""><blockquote type="cite" class=""><div class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;" class="">- Increase the size of the binary (depending on what backend you pull)<br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">How large is llc with only X86 and AArch64 configured in, with and without GlobalISel enabled?</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""></div></blockquote><div><br class=""></div><div>For X86 and AArch64 only, the overhead is similar, i.e., negligible if you ask me :):</div><div><br class=""></div><div><div>* Debug builds:</div><div>without GlobalISel:</div><div><div><div class="">real<span class="Apple-tab-span" style="white-space: pre;"> </span>10m34.513s</div><div class="">user<span class="Apple-tab-span" style="white-space: pre;"> </span>61m37.631s</div><div class="">sys<span class="Apple-tab-span" style="white-space: pre;"> </span>6m45.220s</div><div class=""><br class=""></div></div><div><div class="">llc size: 75M</div><div class=""><br class=""></div></div><div>with GlobalISel:</div><div><div><div class="">real<span class="Apple-tab-span" style="white-space: pre;"> </span>10m32.480s</div><div class="">user<span class="Apple-tab-span" style="white-space: pre;"> </span>62m43.664s</div><div class="">sys<span class="Apple-tab-span" style="white-space: pre;"> </span>6m50.433s</div><div class=""><br class=""></div></div><div>llc size: 76M</div><div><br class=""></div><div>That’s a 2 sec difference for a ~10min build and an end result binary ~1% bigger (1M diff) but for du -sh.</div><div><br class=""></div><div>* Release builds:</div><div><div>without GlobalISel</div><div><div class="">real<span class="Apple-tab-span" style="white-space: pre;"> </span>9m1.932s</div><div class="">user<span class="Apple-tab-span" style="white-space: pre;"> </span>61m13.874s</div><div class="">sys<span class="Apple-tab-span" style="white-space: pre;"> </span>5m5.297s</div></div><div><br class=""></div><div><div class="">llc size: 23M</div><div class=""><br class=""></div></div><div>with GlobalISel</div><div><div><div class="">real<span class="Apple-tab-span" style="white-space: pre;"> </span>9m13.297s</div><div class="">user<span class="Apple-tab-span" style="white-space: pre;"> </span>61m59.804s</div><div class="">sys<span class="Apple-tab-span" style="white-space: pre;"> </span>5m11.672s</div></div><div class=""><br class=""></div><div class="">llc size: 23M</div><div class=""><br class=""></div><div class="">That’s a 10 sec difference for a 9min build and an end result binary of the same size.</div><div class=""><br class=""></div><div class="">The bottom line is that IMHO, this is noise.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">-Quentin</div></div></div></div></div></div><blockquote type="cite" class=""><div class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Thanks,</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Mehdi</span></div></blockquote></div><br class=""></div></body></html>