[llvm] r200688 - Introduce SmallPtrSetImpl<T *> which allows insert, erase, count, and
Duncan P. N. Exon Smith
dexonsmith at apple.com
Tue Feb 4 19:02:30 PST 2014
On 2014 Feb 4, at 17:00, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
> On Feb 4, 2014, at 4:06 PM, Justin Bogner <mail at justinbogner.com> wrote:
>
>> Chandler Carruth <chandlerc at gmail.com> writes:
>>> On Tue, Feb 4, 2014 at 3:33 PM, Justin Bogner <mail at justinbogner.com> wrote:
>>>
>>> Chandler Carruth <chandlerc at gmail.com> writes:
>>>> Introduce SmallPtrSetImpl<T *> which allows insert, erase, count, and
>>>> iteration. This alows the majority of operations to be performed without
>>>> encoding a specific small size. It follows the model of
>>>> SmallVectorImpl<T>.
>>>
>>> There's a lot to be said for following the existing practice, so feel
>>> free to ignore this, but SmallVectorImpl isn't really a very indicative
>>> name for how it's used in the first place. It's just ubiquitous enough
>>> that it isn't worth changing. Maybe a better name from the get-go for
>>> SmallPtrSetImpl would be worthwhile?
>>>
>>> On the other hand, it probably isn't worth bikeshedding about a perfect
>>> name for this.
>>>
>>> I actually think a better name would be great, but I'd *much* rather
>>> consistency here given how thoroughly the current naming pattern has
>>> penetrated the codebases. For a sufficiently better name pattern I'd even be
>>> willing to broach the subject of switching the existing names over so that we
>>> can have the best of both worlds.
>>>
>>> The annoying thing is picking a substantially more clear name. Any ideas? I
>>> don't really have many.
>
> As a new LLVM developer, the current misleading naming scheme has bothered me.
> It would be great to be more clear here.
>
>> If I had any good ideas I'd probably have mentioned them instead of just
>> complaining from the peanut gallery! One idea that amused me is
>> SmallishFoo, to indicate that it's less specific. Puns like that in
>> names are usually a bad sign though :)
>>
>> I guess we'd want to go for something like UnspecifiedSmallFoo, but
>> that's getting to be a pretty long name.
>>
>>> We could be clever and have SmallFoo<T, N> inherit from SmallFoo<T> -- if you
>>> pass the N you get the concrete derived type, if you don't, you get the basic
>>> functionality without a specific size. That is sadly the best (and worst!)
>>> idea I have....
>>
>> This might not be terrible, though it does make it a lot harder to talk
>> about the two different things.
>
> The name overload of SmallFoo<T, N> and SmallFoo<T> is awesome. But terrible.
>
> I’m not convinced these are any better, but they’re less misleading than
> SmallFooImpl<T>:
>
> - SmallFooUnsized<T>
> - SmallFooGen<T> (or SmallFooGeneric<T> or GenericSmallFoo<T>)
> - SmallFooCommon<T>
> - BasicSmallFoo<T>
Or, SmallFooSuper<T>.
More information about the llvm-commits
mailing list