<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 Dec 10, 2014, at 10:36 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" class="">dblaikie@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" 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 class="gmail_extra"><br class="Apple-interchange-newline"><br class=""><div class="gmail_quote">On Wed, Dec 10, 2014 at 10:31 AM, Matthias Braun<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:matze@braunis.de" target="_blank" class="">matze@braunis.de</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" 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 style="word-wrap: break-word;" class=""><br class=""><div class=""><span class=""><blockquote type="cite" class=""><div class="">On Dec 10, 2014, at 9:28 AM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank" class="">dblaikie@gmail.com</a>> wrote:</div><br class=""><div class=""><div dir="ltr" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;" class=""><div class="gmail_extra"><br class=""><br class=""><div class="gmail_quote">On Tue, Dec 9, 2014 at 5:32 PM, Matthias Braun<span class=""> </span><span dir="ltr" class=""><<a href="mailto:matze@braunis.de" target="_blank" class="">matze@braunis.de</a>></span><span class=""> </span>wrote:<br class=""><blockquote class="gmail_quote" 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;">Ok,<br class=""><br class="">I just commited the changes to svn trunk. Thanks everyone, esp. Renato and Quentin, for the detailed reviews!<br class=""><br class="">SubRegisterLiveness is available as a subtarget switch now, but not enabled by any of the targets yet, as most of them need some additional fixing/testcase changes which I'll address in subsequent commits.<br class=""><br class="">For the record: I did fix many but not all issues mentioned in the reviews. The following is still missing:<br class=""><br class="">- Manually creating a single linked list in the LiveInterval class. The alternatives to this are:<br class="">   <span class=""> </span>a) Using the double linked list provided by llvm.<br class="">   <span class=""> </span>b) Turning the manual single linked list into a full featued ADT in llvm.<br class=""></blockquote><div class=""><br class="">Why not std::forward_list ?<br class=""></div></div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">As far as I know the STL list containers are non-intrusive which is probably even more wasteful as you need an extra object (with memory allocator alignment padding) for each list element.</div></div></div></blockquote><div class=""><br class="">They aren't intrusive, but that doesn't mean you need an extra object - it's still just a single allocation per node, containing the element type and a pointer.<br class=""></div></div></div></div></div></blockquote><div><br class=""></div></div>I just tried using the non-intrusive list and failed: The code was using a BumpPtrAllocator which was only available on demand at the places where new SubRanges are created (since we do not want to store a reference to the BumpPtrAllocator into every LiveRange). I don't see a way to have the STL list use the BumpPtrAllocator without blowing up the list with a reference to the BumpPtrAllocator (granted in this instance it's probably not too important to actually use a BumpPtrAllocator. So I'm at that point again where the STL just feels like a huge bunch of complicated abstractions (I just spent >30 minutes making sense of complicated libcxx headers) which in the end are still not flexible enough for all use cases...<div class=""><br class=""></div><div class="">- Matthias</div></body></html>