LLVM 20.0.0git
|
This file defines the SmallVector class. More...
#include "llvm/Support/Compiler.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <initializer_list>
#include <iterator>
#include <limits>
#include <memory>
#include <new>
#include <type_traits>
#include <utility>
Go to the source code of this file.
Classes | |
class | llvm::SmallVectorBase< Size_T > |
This is all the stuff common to all SmallVectors. More... | |
struct | llvm::SmallVectorAlignmentAndSize< T, typename > |
Figure out the offset of the first element. More... | |
class | llvm::SmallVectorTemplateCommon< T, typename > |
This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. More... | |
class | llvm::SmallVectorTemplateBase< T, bool > |
SmallVectorTemplateBase<TriviallyCopyable = false> - This is where we put method implementations that are designed to work with non-trivial T's. More... | |
class | llvm::SmallVectorTemplateBase< T, true > |
SmallVectorTemplateBase<TriviallyCopyable = true> - This is where we put method implementations that are designed to work with trivially copyable T's. More... | |
class | llvm::SmallVectorImpl< T > |
This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter. More... | |
struct | llvm::SmallVectorStorage< T, N > |
Storage for the SmallVector elements. More... | |
struct | llvm::SmallVectorStorage< T, 0 > |
We need the storage to be properly aligned even for small-size of 0 so that the pointer math in SmallVectorTemplateCommon::getFirstEl() is well-defined. More... | |
struct | llvm::CalculateSmallVectorDefaultInlinedElements< T > |
Helper class for calculating the default number of inline elements for SmallVector<T> . More... | |
class | llvm::SmallVector< T, N > |
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | std |
Implement std::hash so that hash_code can be used in STL containers. | |
Typedefs | |
template<class Iterator > | |
using | llvm::EnableIfConvertibleToInputIterator = std::enable_if_t< std::is_convertible< typename std::iterator_traits< Iterator >::iterator_category, std::input_iterator_tag >::value > |
template<class T > | |
using | llvm::SmallVectorSizeType = std::conditional_t< sizeof(T)< 4 &&sizeof(void *) >=8, uint64_t, uint32_t > |
template<typename RangeType > | |
using | llvm::ValueTypeFromRangeType = std::remove_const_t< std::remove_reference_t< decltype(*std::begin(std::declval< RangeType & >()))> > |
Functions | |
template<typename T , unsigned N> | |
size_t | llvm::capacity_in_bytes (const SmallVector< T, N > &X) |
template<unsigned Size, typename R > | |
SmallVector< ValueTypeFromRangeType< R >, Size > | llvm::to_vector (R &&Range) |
Given a range of type R, iterate the entire range and return a SmallVector with elements of the vector. | |
template<typename R > | |
SmallVector< ValueTypeFromRangeType< R > > | llvm::to_vector (R &&Range) |
template<typename Out , unsigned Size, typename R > | |
SmallVector< Out, Size > | llvm::to_vector_of (R &&Range) |
template<typename Out , typename R > | |
SmallVector< Out > | llvm::to_vector_of (R &&Range) |
template<typename T > | |
void | std::swap (llvm::SmallVectorImpl< T > &LHS, llvm::SmallVectorImpl< T > &RHS) |
Implement std::swap in terms of SmallVector swap. | |
template<typename T , unsigned N> | |
void | std::swap (llvm::SmallVector< T, N > &LHS, llvm::SmallVector< T, N > &RHS) |
Implement std::swap in terms of SmallVector swap. | |
Variables | |
template<typename T , unsigned N> | |
class LLVM_GSL_OWNER | llvm::SmallVector |
Forward declaration of SmallVector so that calculateSmallVectorDefaultInlinedElements can reference sizeof(SmallVector<T, 0>) . | |
This file defines the SmallVector class.
Definition in file SmallVector.h.