llvm::Recycler< T, Size, Align > Class Template Reference

Recycler - This class manages a linked-list of deallocated nodes and facilitates reusing deallocated memory in place of allocating new memory. More...

#include <Recycler.h>

List of all members.

Public Member Functions

 ~Recycler ()
template<class AllocatorType >
void clear (AllocatorType &Allocator)
 clear - Release all the tracked allocations to the allocator.
template<class SubClass , class AllocatorType >
SubClass * Allocate (AllocatorType &Allocator)
template<class AllocatorType >
T * Allocate (AllocatorType &Allocator)
template<class SubClass , class AllocatorType >
void Deallocate (AllocatorType &, SubClass *Element)
void PrintStats ()

Private Attributes

iplist< RecyclerStructFreeList
 FreeList - Doubly-linked list of nodes that have deleted contents and are not in active use.

Detailed Description

template<class T, size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
class llvm::Recycler< T, Size, Align >

Recycler - This class manages a linked-list of deallocated nodes and facilitates reusing deallocated memory in place of allocating new memory.


Constructor & Destructor Documentation

template<class T , size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
llvm::Recycler< T, Size, Align >::~Recycler (  )  [inline]

Member Function Documentation

template<class T , size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
template<class AllocatorType >
T* llvm::Recycler< T, Size, Align >::Allocate ( AllocatorType &  Allocator  )  [inline]
template<class T , size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
template<class SubClass , class AllocatorType >
SubClass* llvm::Recycler< T, Size, Align >::Allocate ( AllocatorType &  Allocator  )  [inline]
template<class T , size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
template<class AllocatorType >
void llvm::Recycler< T, Size, Align >::clear ( AllocatorType &  Allocator  )  [inline]

clear - Release all the tracked allocations to the allocator.

The recycler must be free of any tracked allocations before being deleted; calling clear is one way to ensure this.

template<class T , size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
template<class SubClass , class AllocatorType >
void llvm::Recycler< T, Size, Align >::Deallocate ( AllocatorType &  ,
SubClass *  Element 
) [inline]
template<class T , size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
void llvm::Recycler< T, Size, Align >::PrintStats (  )  [inline]

Member Data Documentation

template<class T , size_t Size = sizeof(T), size_t Align = AlignOf<T>::Alignment>
iplist<RecyclerStruct> llvm::Recycler< T, Size, Align >::FreeList [private]

FreeList - Doubly-linked list of nodes that have deleted contents and are not in active use.


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

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1