<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 17, 2015 at 2:24 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Fri, Feb 13, 2015 at 11:55 AM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span><br><div class="gmail_quote">On Fri, Feb 13, 2015 at 11:30 AM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Returning a const reference to a set is not wrong at all, and it involves less moving parts, no?<div><br></div><div>The other reason why I prefer a set over range here is because I don't want to see more uses of range in LLD at this moment. I believe range is designed after N3350, which didn't make it to the standard yet. It doesn't feel great that this generic library lives under LLD. If we really need this one, we should move the file to LLVM support directory. Otherwise, I don't like to build a local rule to use range in LLD. After all other LLVM projects are not using this range.</div></div></blockquote></div><br></span>FWIW, LLVM projects are using ranges pretty heavily now, and we added llvm::iterator_range to LLVM's ADT library. So I'm pretty happy with increased usage of ranges in LLD.</div></div></blockquote><div><br></div></span><div>Thanks, Chandler. Maybe we should replace all uses of lld::range with llvm::iterator_range? Looks like there's no reason to not do.</div></blockquote></div><br>I'm generally happy with the direction of sinking this generic functionality out of LLD and into LLVM. At the time it went in, LLD was using C++11 in places that LLVM wasn't (IIRC) and that was the motivation for keeping it in LLD. Today, that doesn't make sense.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I've not looked at LLD's generic utilities here so i can't comment on the best way to do this or what they'll end up looking like, but I'm vaguely in favor of the direction.</div></div>