<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></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 Mar 4, 2015, at 10:29 AM, Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">----- Original Message -----</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">From: "Quentin Colombet" <<a href="mailto:qcolombet@apple.com" class="">qcolombet@apple.com</a>><br class="">To: "Hal Finkel" <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>><br class="">Cc: "Chandler Carruth" <<a href="mailto:chandlerc@google.com" class="">chandlerc@google.com</a>>, "Commit Messages and Patches for LLVM" <<a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a>>,<br class="">"Matthias Braun" <<a href="mailto:matze@braunis.de" class="">matze@braunis.de</a>><br class="">Sent: Wednesday, March 4, 2015 12:12:36 PM<br class="">Subject: Re: [llvm] r231186 - RegisterCoalescer: Gracefully continue if subrange merging fails.<br class=""><br class=""><br class="">On Mar 3, 2015, at 6:32 PM, Hal Finkel < <a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a> > wrote:<br class=""><br class="">----- Original Message -----<br class=""><br class=""><br class="">From: "Chandler Carruth" < <a href="mailto:chandlerc@google.com" class="">chandlerc@google.com</a> ><br class="">To: "Quentin Colombet" < <a href="mailto:qcolombet@apple.com" class="">qcolombet@apple.com</a> ><br class="">Cc: "Commit Messages and Patches for LLVM" < <a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class=""><blockquote type="cite" class="">, "Matthias Braun" < <a href="mailto:matze@braunis.de" class="">matze@braunis.de</a> ><br class=""></blockquote>Sent: Tuesday, March 3, 2015 7:54:30 PM<br class="">Subject: Re: [llvm] r231186 - RegisterCoalescer: Gracefully continue<br class="">if subrange merging fails.<br class=""><br class=""><br class=""><br class="">Thanks both Quentin and Matthias.<br class=""><br class=""><br class="">Two completely meta points:<br class=""><br class=""><br class="">1) It'd be useful to mention this in a commit that obviously has no<br class="">test case. Saves a round trip checking whether it just was<br class="">accidentally left off the commit.<br class=""><br class=""><br class="">2) This makes me want to encourage thinking about ways to unittest<br class="">components of CodeGen in the future. Historically we haven't looked<br class="">at that, but if we need to support and debug out-of-tree targets<br class="">with interesting properties like this it may became important to<br class="">grow that ability. Its an important use case for these libraries to<br class="">work even with wildly different targets, and important that folks<br class="">can check that they're handling edge cases without access to all the<br class="">weird targets in the world. =]<br class=""><br class=""><br class="">I'd like to encourage this independent of the use case of out-of-tree<br class="">targets. We have a serious problem with testing of CodeGen<br class="">components, generally; we currently construct IR-level tests, but<br class="">this is very fragile. Many of the IR-level CodeGen tests, especially<br class="">"bug-triggering" regression tests, don't currently test the logic<br class="">they were originally designed to cover.<br class=""><br class=""><br class=""><br class="">Agreed.<br class=""><br class=""><br class="">Could this be a proposal for a GSoC?<br class=""><br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">Yes, it could be. I'd certainly help supervise. We'd need to define the scope and basic design beforehand. We should move this to a separate thread on llvmdev.</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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>Agreed.</div><div>Could you start a RFC on that?</div><div><br class=""></div><div>Thanks,</div><div>-Quentin</div><br class=""><blockquote type="cite" class=""><div class=""><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">-Hal</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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 class="">Q.<br class=""><br class=""><br class=""><br class=""><br class="">-Hal<br class=""><br class=""><br class=""><br class=""><br class="">Anyways, thanks for explaining.<br class=""><br class=""><br class="">On Tue, Mar 3, 2015 at 5:29 PM, Quentin Colombet <<br class=""><a href="mailto:qcolombet@apple.com" class="">qcolombet@apple.com</a> > wrote:<br class=""><br class=""><br class=""><br class="">With the in-tree target this not exposed.<br class=""><br class=""><br class="">Arguably we could create a fake target with such problem, but I do<br class="">not think this is worth the complexity.<br class=""><br class=""><br class="">Q.<br class=""><br class=""><br class=""><br class=""><br class=""><br class="">On Mar 3, 2015, at 5:21 PM, Chandler Carruth < <a href="mailto:chandlerc@google.com" class="">chandlerc@google.com</a> ><br class="">wrote:<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">On Tue, Mar 3, 2015 at 4:43 PM, Matthias Braun < <a href="mailto:matze@braunis.de" class="">matze@braunis.de</a> ><br class="">wrote:<br class=""><br class=""><br class=""><br class="">Author: matze<br class="">Date: Tue Mar 3 18:43:50 2015<br class="">New Revision: 231186<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=231186&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=231186&view=rev</a><br class="">Log:<br class="">RegisterCoalescer: Gracefully continue if subrange merging fails.<br class=""><br class="">There is a known bug where the register coalescer fails to merge<br class="">subranges when multiple ranges end up in the "overflow" bit 32 of the<br class="">lanemasks. A proper fix for this is complicated so for now this is a<br class="">workaround which lets the register coalescer drop the subregister<br class="">liveness information (we just loose some precision by that) and<br class="">continue.<br class=""><br class="">Modified:<br class="">llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp<br class="">No test case? This seems like something really important to cover...<br class="">_______________________________________________<br class="">llvm-commits mailing list<br class=""><a href="mailto:llvm-commits@cs.uiuc.edu" class="">llvm-commits@cs.uiuc.edu</a><br class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br class=""><br class=""><br class="">_______________________________________________<br class="">llvm-commits mailing list<br class="">llvm-commits@cs.uiuc.edu<br class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br class=""><br class=""><br class="">--<br class="">Hal Finkel<br class="">Assistant Computational Scientist<br class="">Leadership Computing Facility<br class="">Argonne National Laboratory<br class=""><br class=""></blockquote><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">--<span class="Apple-converted-space"> </span></span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">Hal Finkel</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">Assistant Computational Scientist</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">Leadership Computing Facility</span><br style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 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: normal; font-weight: normal; letter-spacing: normal; line-height: 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="">Argonne National Laboratory</span></div></blockquote></div><br class=""></body></html>