Halide 22.0.0 Halide compiler and libraries

Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
Halide::Runtime::Internal::MemoryArena Class Reference

`#include <memory_arena.h>`

## Classes
struct | Config

## Public Member Functions
| MemoryArena (const MemoryArena &)=delete
MemoryArena & | operator= (const MemoryArena &)=delete
| MemoryArena (void *user_context, const Config &config=default_config(), const SystemMemoryAllocatorFns &allocator=default_allocator())
| ~MemoryArena ()
void | initialize (void *user_context, const Config &config, const SystemMemoryAllocatorFns &allocator=default_allocator())
void * | reserve (void *user_context, bool initialize=false)
void | reclaim (void *user_context, void *ptr)
bool | collect (void *user_context)
void | destroy (void *user_context)
const Config & | current_config () const
const SystemMemoryAllocatorFns & | current_allocator () const

## Static Public Member Functions
static MemoryArena * | create (void *user_context, const Config &config, const SystemMemoryAllocatorFns &allocator=default_allocator())
static void | destroy (void *user_context, MemoryArena *arena)
static const Config & | default_config ()
static const SystemMemoryAllocatorFns & | default_allocator ()

## Static Public Attributes
static constexpr uint32_t | default_capacity = uint32_t(32)

## Detailed Description

Definition at line 17 of file memory_arena.h.

## Constructor & Destructor Documentation

## ◆ MemoryArena() [1/2]

Halide::Runtime::Internal::MemoryArena::MemoryArena | ( | const MemoryArena & |  | ) |
| delete

## ◆ MemoryArena() [2/2]

Halide::Runtime::Internal::MemoryArena::MemoryArena | ( | void * | user_context,
|  | const Config & | config = `default_config()`,
|  | const SystemMemoryAllocatorFns & | allocator = `default_allocator()`
| ) |  |
| explicit

Definition at line 89 of file memory_arena.h.

## ◆ ~MemoryArena()

Halide::Runtime::Internal::MemoryArena::~MemoryArena | ( |  | ) |

Definition at line 97 of file memory_arena.h.

References destroy().

## Member Function Documentation

## ◆ operator=()

MemoryArena & Halide::Runtime::Internal::MemoryArena::operator= | ( | const MemoryArena & |  | ) |
| delete

## ◆ create()

MemoryArena * Halide::Runtime::Internal::MemoryArena::create | ( | void * | user_context,
|  | const Config & | config,
|  | const SystemMemoryAllocatorFns & | allocator = `default_allocator()`
| ) |  |
| static

Definition at line 101 of file memory_arena.h.

References Halide::Runtime::Internal::SystemMemoryAllocatorFns::allocate, halide_debug_assert, halide_error(), initialize(), and user_context.

Referenced by Halide::Runtime::Internal::LinkedList::initialize(), and Halide::Runtime::Internal::LinkedList::LinkedList().

## ◆ destroy() [1/2]

void Halide::Runtime::Internal::MemoryArena::destroy | ( | void * | user_context,
|  | MemoryArena * | arena
| ) |  |
| static

Definition at line 115 of file memory_arena.h.

References Halide::Runtime::Internal::BlockStorage::current_allocator(), Halide::Runtime::Internal::SystemMemoryAllocatorFns::deallocate, destroy(), halide_debug_assert, and user_context.

Referenced by Halide::Runtime::Internal::LinkedList::destroy(), Halide::Runtime::Internal::RegionAllocator::destroy(), destroy(), and ~MemoryArena().

## ◆ initialize()

void Halide::Runtime::Internal::MemoryArena::initialize | ( | void * | user_context,
|  | const Config & | config,
|  | const SystemMemoryAllocatorFns & | allocator = `default_allocator()`
| ) |  |

Definition at line 123 of file memory_arena.h.

References halide_debug_assert, Halide::Runtime::Internal::BlockStorage::initialize(), Halide::Runtime::Internal::MemoryArena::Config::minimum_block_capacity, and user_context.

Referenced by create(), and reserve().

## ◆ reserve()

void * Halide::Runtime::Internal::MemoryArena::reserve | ( | void * | user_context,
|  | bool | initialize = `false`
| ) |  |

Definition at line 155 of file memory_arena.h.

References Halide::Runtime::Internal::MemoryArena::Config::entry_size, halide_debug_assert, halide_error(), initialize(), Halide::Runtime::Internal::MemoryArena::Config::maximum_block_count, memset(), Halide::Runtime::Internal::BlockStorage::size(), and user_context.

## ◆ reclaim()

void Halide::Runtime::Internal::MemoryArena::reclaim | ( | void * | user_context,
|  | void * | ptr
| ) |  |

Definition at line 182 of file memory_arena.h.

References Halide::Runtime::Internal::MemoryArena::Config::entry_size, halide_debug_assert, halide_error(), Halide::Runtime::Internal::offset_address(), Halide::Runtime::Internal::BlockStorage::size(), and user_context.

## ◆ collect()

bool Halide::Runtime::Internal::MemoryArena::collect | ( | void * | user_context | ) |

Definition at line 142 of file memory_arena.h.

References halide_debug_assert, Halide::Runtime::Internal::BlockStorage::remove(), Halide::Runtime::Internal::BlockStorage::size(), and user_context.

## ◆ destroy() [2/2]

void Halide::Runtime::Internal::MemoryArena::destroy | ( | void * | user_context | ) |

Definition at line 131 of file memory_arena.h.

References Halide::Runtime::Internal::BlockStorage::destroy(), Halide::Runtime::Internal::BlockStorage::empty(), halide_debug_assert, Halide::Runtime::Internal::BlockStorage::size(), and user_context.

## ◆ current_config()

const MemoryArena::Config & Halide::Runtime::Internal::MemoryArena::current_config | ( |  | ) | const

Definition at line 287 of file memory_arena.h.

Referenced by Halide::Runtime::Internal::LinkedList::append(), Halide::Runtime::Internal::LinkedList::insert_after(), Halide::Runtime::Internal::LinkedList::insert_before(), and Halide::Runtime::Internal::LinkedList::prepend().

## ◆ default_config()

const MemoryArena::Config & Halide::Runtime::Internal::MemoryArena::default_config | ( |  | ) |
| static

Definition at line 292 of file memory_arena.h.

## ◆ current_allocator()

const SystemMemoryAllocatorFns & Halide::Runtime::Internal::MemoryArena::current_allocator | ( |  | ) | const

Definition at line 298 of file memory_arena.h.

References Halide::Runtime::Internal::BlockStorage::current_allocator().

Referenced by Halide::Runtime::Internal::LinkedList::current_allocator().

## ◆ default_allocator()

const SystemMemoryAllocatorFns & Halide::Runtime::Internal::MemoryArena::default_allocator | ( |  | ) |
| static

Definition at line 303 of file memory_arena.h.

References Halide::Runtime::Internal::BlockStorage::default_allocator().

Referenced by Halide::Runtime::Internal::LinkedList::default_allocator().

## Member Data Documentation

## ◆ default_capacity

constexpr uint32_t Halide::Runtime::Internal::MemoryArena::default_capacity = uint32_t(32)
| staticconstexpr

Definition at line 24 of file memory_arena.h.

Referenced by Halide::Runtime::Internal::LinkedList::initialize(), and Halide::Runtime::Internal::LinkedList::LinkedList().

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

- src/runtime/internal/memory_arena.h