<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=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 19, 2017, at 1:10 PM, Jim Grosbach <<a href="mailto:grosbach@apple.com" class="">grosbach@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><blockquote type="cite" class="" 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;"><div class=""><br class="Apple-interchange-newline">On Jan 19, 2017, at 11:59 AM, Quentin Colombet <<a href="mailto:qcolombet@apple.com" class="">qcolombet@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Hi all,<div class=""><br class=""></div><div class="">Trying to summarize the concerns along side my answers but I believe we are good to do the switch to build GlobalISel by default. In particular, Renato and I exchanged offline and he tried doing the switch on some of the bots he maintained and did not see any overhead/problem for that.</div><div class="">Let me know if you disagree.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><div class="">* What is the impact on compile time?</div></div><div class=""><br class=""></div><div class="">Negligible: ~5s for a 19min build. (See <a href="http://lists.llvm.org/pipermail/llvm-dev/2017-January/109185.html" class="">http://lists.llvm.org/pipermail/llvm-dev/2017-January/109185.html</a> for the details.)</div><div class=""><br class=""></div><div class=""><div class=""><br class=""></div><div class="">* What is the impact on binary size?</div></div><div class=""><br class=""></div><div class=""><div class="">Negligible: 0 to 1M on a 37M to 104M. (See<span class="Apple-converted-space"> </span><a href="http://lists.llvm.org/pipermail/llvm-dev/2017-January/109185.html" class="">http://lists.llvm.org/pipermail/llvm-dev/2017-January/109185.html</a> for the details.)</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">* How likely GlobalISel will break on non-related change?</div><div class=""><br class=""></div><div class="">Unlikely: GlobalISel's APIs are fairly isolated or work on pretty well established low-level APIs. (See<span class="Apple-converted-space"> </span><a href="http://lists.llvm.org/pipermail/llvm-dev/2017-January/109154.html" class="">http://lists.llvm.org/pipermail/llvm-dev/2017-January/109154.html</a> for details.)</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">* Why GlobalISel wasn’t built from the start?</div><div class=""><br class=""></div><div class="">One of the requirement was that we don’t impact negatively the footprint of the compiler. Given we were not sure where we were going and in particular we temporarily increased the size of the MachineInstrs and some other core classes during the prototype, we decided to turn it off by default. Those problems have been fixed now.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">* How is the existing GlobalISel implement viewed?</div><div class=""><br class=""></div><div class="">Last year we finished the proof-of-concept and are moving toward production quality now. We are doing reviews like any other part of the code and rewrite what we believe needs to be rewritten. I’ll go into more details regarding the status in another thread, but one of the thing we are pushing right now is tablegen support in GlobalISel so that we can just reuse the existing td form SDISel.</div></div></div></blockquote><div 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; -webkit-text-stroke-width: 0px;" class=""><br class=""></div><div 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; -webkit-text-stroke-width: 0px;" class="">To reinforce Quentin’s point here, if folks have concerns about the suitability of areas of the code for long term maintainability, elegance of design or implementation, or anything else regarding the code quality, please say so. Deep and thorough review is essential to long term success.</div></div></blockquote><div><br class=""></div><div>+1, well say!</div><br class=""><blockquote type="cite" class=""><div class=""><br class="" 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; -webkit-text-stroke-width: 0px;"><blockquote type="cite" class="" 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;"><div class=""><div class="" style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Let me know if I didn’t address some of the concerns.</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">-Quentin</div></div></div></blockquote></div></blockquote>[...]</div><br class=""></body></html>