![]() |
Realm
A distributed, event-based tasking library
|
#include <mem_impl.h>
Public Types | |
| using | Range = typename BasicRangeAllocator< RT, TT >::Range |
Public Member Functions | |
| SizedRangeAllocator (void) | |
| ~SizedRangeAllocator (void) | |
| SizedRangeAllocator (const SizedRangeAllocator &)=default | |
| SizedRangeAllocator & | operator= (const SizedRangeAllocator &)=default |
| SizedRangeAllocator (SizedRangeAllocator &&) noexcept=default | |
| SizedRangeAllocator & | operator= (SizedRangeAllocator &&) noexcept=default |
| void | swap (SizedRangeAllocator< RT, TT, SORTED > &swap_with) |
| void | add_range (RT first, RT last) |
| bool | can_allocate (TT tag, RT size, RT alignment) |
| bool | allocate (TT tag, RT size, RT alignment, RT &first) |
| void | deallocate (TT tag, bool missing_ok=false) |
| size_t | split_range (TT old_tag, const std::vector< TT > &new_tags, const std::vector< RT > &sizes, const std::vector< RT > &alignment, std::vector< RT > &allocs_first, bool missing_ok=false) |
| void | add_to_free_list (unsigned index, Range &range) |
| void | remove_from_free_list (unsigned index, Range &range) |
| void | grow_hole (unsigned index, Range &range, RT bound, bool before) |
| BasicRangeAllocator< RT, TT >::MemoryStats | get_allocator_stats () |
Public Member Functions inherited from Realm::BasicRangeAllocator< RT, TT > | |
| BasicRangeAllocator (void) | |
| ~BasicRangeAllocator (void) | |
| BasicRangeAllocator (const BasicRangeAllocator &)=default | |
| BasicRangeAllocator & | operator= (const BasicRangeAllocator &)=default |
| BasicRangeAllocator (BasicRangeAllocator &&) noexcept=default | |
| BasicRangeAllocator & | operator= (BasicRangeAllocator &&) noexcept=default |
| void | swap (BasicRangeAllocator< RT, TT > &swap_with) |
| void | add_range (RT first, RT last) |
| bool | can_allocate (TT tag, RT size, RT alignment) |
| bool | allocate (TT tag, RT size, RT alignment, RT &first) |
| void | deallocate (TT tag, bool missing_ok=false) |
| bool | lookup (TT tag, RT &first, RT &size) |
| size_t | split_range (TT old_tag, const std::vector< TT > &new_tags, const std::vector< RT > &sizes, const std::vector< RT > &alignment, std::vector< RT > &allocs_first, bool missing_ok=false) |
| MemoryStats | get_allocator_stats () |
| bool | free_list_has_cycle () |
| bool | has_invalid_ranges () |
Static Public Member Functions | |
| static unsigned | floor_log2 (uint64_t size) |
Static Public Attributes | |
| static constexpr unsigned | SENTINEL = BasicRangeAllocator<RT, TT>::SENTINEL |
Static Public Attributes inherited from Realm::BasicRangeAllocator< RT, TT > | |
| static const unsigned | SENTINEL = 0 |
Protected Attributes | |
| std::vector< unsigned > | size_based_free_lists |
Protected Attributes inherited from Realm::BasicRangeAllocator< RT, TT > | |
| unsigned | first_free_range |
Additional Inherited Members | |
Public Attributes inherited from Realm::BasicRangeAllocator< RT, TT > | |
| std::map< TT, unsigned > | allocated |
| std::vector< Range > | ranges |
Protected Member Functions inherited from Realm::BasicRangeAllocator< RT, TT > | |
| unsigned | alloc_range (RT first, RT last) |
| void | deallocate (unsigned del_idx) |
| void | free_range (unsigned index) |
| using Realm::SizedRangeAllocator< RT, TT, SORTED >::Range = typename BasicRangeAllocator<RT, TT>::Range |
| Realm::SizedRangeAllocator< RT, TT, SORTED >::SizedRangeAllocator | ( | void | ) |
| Realm::SizedRangeAllocator< RT, TT, SORTED >::~SizedRangeAllocator | ( | void | ) |
|
default |
|
defaultnoexcept |
| void Realm::SizedRangeAllocator< RT, TT, SORTED >::add_range | ( | RT | first, |
| RT | last | ||
| ) |
| void Realm::SizedRangeAllocator< RT, TT, SORTED >::add_to_free_list | ( | unsigned | index, |
| Range & | range | ||
| ) |
| bool Realm::SizedRangeAllocator< RT, TT, SORTED >::allocate | ( | TT | tag, |
| RT | size, | ||
| RT | alignment, | ||
| RT & | first | ||
| ) |
| bool Realm::SizedRangeAllocator< RT, TT, SORTED >::can_allocate | ( | TT | tag, |
| RT | size, | ||
| RT | alignment | ||
| ) |
| void Realm::SizedRangeAllocator< RT, TT, SORTED >::deallocate | ( | TT | tag, |
| bool | missing_ok = false |
||
| ) |
|
static |
| BasicRangeAllocator< RT, TT >::MemoryStats Realm::SizedRangeAllocator< RT, TT, SORTED >::get_allocator_stats | ( | ) |
| void Realm::SizedRangeAllocator< RT, TT, SORTED >::grow_hole | ( | unsigned | index, |
| Range & | range, | ||
| RT | bound, | ||
| bool | before | ||
| ) |
|
default |
|
defaultnoexcept |
| void Realm::SizedRangeAllocator< RT, TT, SORTED >::remove_from_free_list | ( | unsigned | index, |
| Range & | range | ||
| ) |
| size_t Realm::SizedRangeAllocator< RT, TT, SORTED >::split_range | ( | TT | old_tag, |
| const std::vector< TT > & | new_tags, | ||
| const std::vector< RT > & | sizes, | ||
| const std::vector< RT > & | alignment, | ||
| std::vector< RT > & | allocs_first, | ||
| bool | missing_ok = false |
||
| ) |
| void Realm::SizedRangeAllocator< RT, TT, SORTED >::swap | ( | SizedRangeAllocator< RT, TT, SORTED > & | swap_with | ) |
|
staticconstexpr |
|
protected |