[llvm-dev] RFC: Should SmallVectors be smaller?

Duncan P. N. Exon Smith via llvm-dev llvm-dev at lists.llvm.org
Sat Jun 23 11:35:45 PDT 2018

> On Jun 23, 2018, at 11:27, Duncan P. N. Exon Smith <dexonsmith at apple.com> wrote:
>> The patch LGTM, but why would someone actually have a SmallVector with N = 0?  Isn’t that a vector?
> It's a vector that can be passed as a SmallVectorImpl parameter.  But yeah, mostly misguided.

There's another explanation given in llvm/include/llvm/ADT/IndexedMap.h:
template <typename T, typename ToIndexT = identity<unsigned>>
  class IndexedMap {
    using IndexT = typename ToIndexT::argument_type;
    // Prefer SmallVector with zero inline storage over std::vector. IndexedMaps
    // can grow very large and SmallVector grows more efficiently as long as T
    // is trivially copyable.
    using StorageT = SmallVector<T, 0>;

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180623/16298af6/attachment.html>

More information about the llvm-dev mailing list