r269717 - 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.

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Mon May 16 15:53:19 PDT 2016


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.

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.




More information about the cfe-commits mailing list