LLVM 22.0.0git
SmallVector.h File Reference

This file defines the SmallVector class. More...

#include "llvm/ADT/DenseMapInfo.h"
#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...
struct  llvm::DenseMapInfo< llvm::SmallVector< T, N > >

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
template<class T>
using llvm::SmallVectorSizeType
template<typename RangeType>
using llvm::ValueTypeFromRangeType

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 >, Sizellvm::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, Sizellvm::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>).

Detailed Description

This file defines the SmallVector class.

Definition in file SmallVector.h.