On Mon, May 16, 2016 at 3:53 PM, Richard Smith via cfe-commits < cfe-commits@lists.llvm.org> wrote:
> Author: rsmith > Date: Mon May 16 17:53:19 2016 > New Revision: 269717 > > URL: http://llvm.org/viewvc/llvm-project?rev=269717&view=rev > Log: > Switch from SmallVector to TinyPtrVector for the list of attributes on a > declaration. This removes a memory allocation for the common case where the > declaration has only one attribute. > Just out of curiosity - if the SmallVector had a small size of 2, why was an allocation done for a single attribute? > > Modified: > cfe/trunk/include/clang/AST/AttrIterator.h > > Modified: cfe/trunk/include/clang/AST/AttrIterator.h > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/AttrIterator.h?rev=269717&r1=269716&r2=269717&view=diff > > ============================================================================== > --- cfe/trunk/include/clang/AST/AttrIterator.h (original) > +++ cfe/trunk/include/clang/AST/AttrIterator.h Mon May 16 17:53:19 2016 > @@ -15,6 +15,7 @@ > #define LLVM_CLANG_AST_ATTRITERATOR_H > > #include "clang/Basic/LLVM.h" > +#include "llvm/ADT/TinyPtrVector.h" > #include <iterator> > > namespace clang { > @@ -39,8 +40,8 @@ void operator delete[](void *Ptr, const > namespace clang { > > /// AttrVec - A vector of Attr, which is how they are stored on the AST. > -typedef SmallVector<Attr*, 2> AttrVec; > -typedef SmallVector<const Attr*, 2> ConstAttrVec; > +typedef llvm::TinyPtrVector<Attr*> AttrVec; > +typedef llvm::TinyPtrVector<const Attr*> ConstAttrVec; > > /// specific_attr_iterator - Iterates over a subrange of an AttrVec, only > /// providing attributes that are of a specific type. > > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits