LLVM: llvm::dwarf_linker::parallel::ArrayList< T, ItemsGroupSize > Class Template Reference (original) (raw)

This class is a simple list of T structures. More...

#include "[DWARFLinker/Parallel/ArrayList.h](ArrayList%5F8h%5Fsource.html)"

Public Member Functions
ArrayList (llvm::parallel::PerThreadBumpPtrAllocator *Allocator)
T & add (const T &Item)
Add specified Item to the list.
void forEach (ItemHandlerTy Handler)
Enumerate all items and apply specified Handler to each.
bool empty ()
Check whether list is empty.
void erase ()
Erase list.
void sort (function_ref< bool(const T &LHS, const T &RHS)> Comparator)
size_t size ()

template<typename T, size_t ItemsGroupSize = 512>
class llvm::dwarf_linker::parallel::ArrayList< T, ItemsGroupSize >

This class is a simple list of T structures.

It keeps elements as pre-allocated groups to save memory for each element's next pointer. It allocates internal data using specified per-thread BumpPtrAllocator. Method add() can be called asynchronously.

Definition at line 23 of file ArrayList.h.

ItemHandlerTy

template<typename T, size_t ItemsGroupSize = 512>

template<typename T, size_t ItemsGroupSize = 512>

add()

template<typename T, size_t ItemsGroupSize = 512>

Add specified Item to the list.

Definition at line 29 of file ArrayList.h.

References allocateNewGroup(), Allocator, assert(), GroupsHead, llvm::dwarf_linker::parallel::ArrayList< T, ItemsGroupSize >::ItemsGroup::Items, llvm::dwarf_linker::parallel::ArrayList< T, ItemsGroupSize >::ItemsGroup::ItemsCount, LastGroup, llvm::dwarf_linker::parallel::ArrayList< T, ItemsGroupSize >::ItemsGroup::Next, and T.

allocateNewGroup()

template<typename T, size_t ItemsGroupSize = 512>

empty()

template<typename T, size_t ItemsGroupSize = 512>

erase()

template<typename T, size_t ItemsGroupSize = 512>

forEach()

template<typename T, size_t ItemsGroupSize = 512>

Enumerate all items and apply specified Handler to each.

Definition at line 63 of file ArrayList.h.

References GroupsHead, and T.

Referenced by sort().

size()

template<typename T, size_t ItemsGroupSize = 512>

sort()

template<typename T, size_t ItemsGroupSize = 512>

Definition at line 80 of file ArrayList.h.

References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), forEach(), LHS, llvm::SmallVectorTemplateBase< T, bool >::push_back(), RHS, llvm::SmallVectorTemplateCommon< T, typename >::size(), and T.

Allocator

template<typename T, size_t ItemsGroupSize = 512>

GroupsHead

template<typename T, size_t ItemsGroupSize = 512>

LastGroup

template<typename T, size_t ItemsGroupSize = 512>


The documentation for this class was generated from the following file: