LLVM
15.0.0git
|
This is all the stuff common to all SmallVectors. More...
#include "llvm/ADT/SmallVector.h"
Public Member Functions | |
size_t | size () const |
size_t | capacity () const |
LLVM_NODISCARD bool | empty () const |
Protected Member Functions | |
SmallVectorBase ()=delete | |
SmallVectorBase (void *FirstEl, size_t TotalCapacity) | |
void * | mallocForGrow (size_t MinSize, size_t TSize, size_t &NewCapacity) |
This is a helper for grow() that's out of line to reduce code duplication. More... | |
void | grow_pod (void *FirstEl, size_t MinSize, size_t TSize) |
This is an implementation of the grow() method which only works on POD-like data types and is out of line to reduce code duplication. More... | |
void | set_size (size_t N) |
Set the array size to N , which the current array must have enough capacity for. More... | |
Static Protected Member Functions | |
static constexpr size_t | SizeTypeMax () |
The maximum value of the Size_T used. More... | |
Protected Attributes | |
void * | BeginX |
Size_T | Size = 0 |
Size_T | Capacity |
This is all the stuff common to all SmallVectors.
The template parameter specifies the type which should be used to hold the Size and Capacity of the SmallVector, so it can be adjusted. Using 32 bit size is desirable to shrink the size of the SmallVector. Using 64 bit size is desirable for cases like SmallVector<char>, where a 32 bit size would limit the vector to ~4GB. SmallVectors are used for buffering bitcode output - which can exceed 4GB.
Definition at line 45 of file SmallVector.h.
|
protecteddelete |
|
inlineprotected |
Definition at line 56 of file SmallVector.h.
|
inline |
Definition at line 71 of file SmallVector.h.
Referenced by llvm::SmallVectorBase< SmallVectorSizeType< T > >::set_size().
|
inline |
Definition at line 73 of file SmallVector.h.
|
protected |
This is an implementation of the grow() method which only works on POD-like data types and is out of line to reduce code duplication.
This function will report a fatal error if it cannot increase capacity.
Definition at line 121 of file SmallVector.cpp.
|
protected |
This is a helper for grow() that's out of line to reduce code duplication.
This function will report a fatal error if it can't grow at least to MinSize
.
Definition at line 113 of file SmallVector.cpp.
|
inlineprotected |
Set the array size to N
, which the current array must have enough capacity for.
This does not construct or destroy any elements in the vector.
Definition at line 80 of file SmallVector.h.
|
inline |
Definition at line 70 of file SmallVector.h.
|
inlinestaticconstexprprotected |
The maximum value of the Size_T used.
Definition at line 51 of file SmallVector.h.
|
protected |
Definition at line 47 of file SmallVector.h.
|
protected |
Definition at line 48 of file SmallVector.h.
Referenced by llvm::SmallVectorBase< SmallVectorSizeType< T > >::capacity().
|
protected |
Definition at line 48 of file SmallVector.h.
Referenced by llvm::SmallVectorBase< SmallVectorSizeType< T > >::empty(), llvm::SmallVectorBase< SmallVectorSizeType< T > >::set_size(), and llvm::SmallVectorBase< SmallVectorSizeType< T > >::size().