<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jul 31, 2015 at 10:04 AM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.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, Jul 31, 2015 at 12:48 PM, Puyan Lotfi <<a href="mailto:puyan@puyan.org">puyan@puyan.org</a>> wrote:<br>
><br>
><br>
> On Fri, Jul 31, 2015 at 9:44 AM, Krzysztof Parzyszek<br>
> <<a href="mailto:kparzysz@codeaurora.org">kparzysz@codeaurora.org</a>> wrote:<br>
>><br>
>> On 7/31/2015 8:27 AM, Aaron Ballman wrote:<br>
>>><br>
>>><br>
>>> I am wondering why this should be an ADT instead of one-off<br>
>>> functionality. I see that you're going to use it for<br>
>>> MachineBasicBlock, but are there other use cases as well? The kind of<br>
>>> functionality that this class provides is covered by basic STL<br>
>>> mechanisms, and so I am hesitant to support it as an ADT for all of<br>
>>> our users unless this is something we expect will be heavily used (or<br>
>>> is heavily customized to support toolchain needs).<br>
>><br>
>><br>
>> I agree.  Also, I think we should avoid creating new ADT unless there is a<br>
>> compelling reason to have our own implementation of a container.<br>
>><br>
><br>
> Does this mean we should also try to remove any existing ADTs that aren't as<br>
> compelling to have anymore?<br>
<br>
</span>Generally, no. If there's a good reason to remove something (e.g.,<br>
prohibitively expensive to maintain) then it's worth considering. But<br>
ADTs are things that out-of-tree projects rely on for interacting with<br>
the project, and so removing them can be nontrivial for our end users.<br>
They're not required to be ABI stable (that I'm aware of) from release<br>
to release, but we tend to be pretty strict about breaking changes<br>
with them.<br>
<span class="HOEnZb"><font color="#888888"><br>
~Aaron<br>
</font></span></blockquote></div><br></div><div class="gmail_extra">I agree to move SortedVector to MachineBasicBlock for the time being, until I find other places in LLVM that could use it.</div><div class="gmail_extra">If anyone thinks this is a bad call I'd like that feedback now.</div><div class="gmail_extra"><br></div><div class="gmail_extra">PL</div><div class="gmail_extra"><br></div></div>