Halide  17.0.2
Halide compiler and libraries
Halide::Runtime::Internal::BlockAllocator Class Reference

Allocator class interface for managing large contiguous blocks of memory, which are then sub-allocated into smaller regions of memory. More...

#include <block_allocator.h>

Classes

struct  Config
 
struct  MemoryAllocators
 

Public Member Functions

 BlockAllocator (const BlockAllocator &)=delete
 
BlockAllocatoroperator= (const BlockAllocator &)=delete
 
 BlockAllocator ()=delete
 
 ~BlockAllocator ()=delete
 
MemoryRegionreserve (void *user_context, const MemoryRequest &request)
 
int conform (void *user_context, MemoryRequest *request) const
 
int release (void *user_context, MemoryRegion *region)
 
int reclaim (void *user_context, MemoryRegion *region)
 
int retain (void *user_context, MemoryRegion *region)
 
bool collect (void *user_context)
 
int release (void *user_context)
 
int destroy (void *user_context)
 
const MemoryAllocatorscurrent_allocators () const
 
const Configcurrent_config () const
 
const Configdefault_config () const
 
size_t block_count () const
 
size_t pool_size () const
 

Static Public Member Functions

static BlockAllocatorcreate (void *user_context, const Config &config, const MemoryAllocators &allocators)
 
static void destroy (void *user_context, BlockAllocator *block_allocator)
 

Detailed Description

Allocator class interface for managing large contiguous blocks of memory, which are then sub-allocated into smaller regions of memory.

This class only manages the address creation for the regions – allocation callback functions are used to request the memory from the necessary system or API calls. This class is intended to be used inside of a higher level memory management class that provides thread safety, policy management and API integration for a specific runtime API (eg Vulkan, OpenCL, etc)

Definition at line 25 of file block_allocator.h.

Constructor & Destructor Documentation

◆ BlockAllocator() [1/2]

Halide::Runtime::Internal::BlockAllocator::BlockAllocator ( const BlockAllocator )
delete

◆ BlockAllocator() [2/2]

Halide::Runtime::Internal::BlockAllocator::BlockAllocator ( )
delete

◆ ~BlockAllocator()

Halide::Runtime::Internal::BlockAllocator::~BlockAllocator ( )
delete

Member Function Documentation

◆ operator=()

BlockAllocator& Halide::Runtime::Internal::BlockAllocator::operator= ( const BlockAllocator )
delete

◆ create()

BlockAllocator * Halide::Runtime::Internal::BlockAllocator::create ( void *  user_context,
const Config config,
const MemoryAllocators allocators 
)
static

Definition at line 124 of file block_allocator.h.

◆ destroy() [1/2]

void Halide::Runtime::Internal::BlockAllocator::destroy ( void *  user_context,
BlockAllocator block_allocator 
)
static

Definition at line 138 of file block_allocator.h.

◆ reserve()

MemoryRegion * Halide::Runtime::Internal::BlockAllocator::reserve ( void *  user_context,
const MemoryRequest request 
)

Definition at line 155 of file block_allocator.h.

◆ conform()

int Halide::Runtime::Internal::BlockAllocator::conform ( void *  user_context,
MemoryRequest request 
) const

Definition at line 571 of file block_allocator.h.

◆ release() [1/2]

int Halide::Runtime::Internal::BlockAllocator::release ( void *  user_context,
MemoryRegion region 
)

Definition at line 200 of file block_allocator.h.

◆ reclaim()

int Halide::Runtime::Internal::BlockAllocator::reclaim ( void *  user_context,
MemoryRegion region 
)

Definition at line 211 of file block_allocator.h.

◆ retain()

int Halide::Runtime::Internal::BlockAllocator::retain ( void *  user_context,
MemoryRegion region 
)

Definition at line 222 of file block_allocator.h.

◆ collect()

bool Halide::Runtime::Internal::BlockAllocator::collect ( void *  user_context)

Definition at line 233 of file block_allocator.h.

◆ release() [2/2]

int Halide::Runtime::Internal::BlockAllocator::release ( void *  user_context)

Definition at line 268 of file block_allocator.h.

◆ destroy() [2/2]

int Halide::Runtime::Internal::BlockAllocator::destroy ( void *  user_context)

Definition at line 278 of file block_allocator.h.

◆ current_allocators()

const BlockAllocator::MemoryAllocators & Halide::Runtime::Internal::BlockAllocator::current_allocators ( ) const

Definition at line 620 of file block_allocator.h.

◆ current_config()

const BlockAllocator::Config & Halide::Runtime::Internal::BlockAllocator::current_config ( ) const

Definition at line 624 of file block_allocator.h.

◆ default_config()

const BlockAllocator::Config & Halide::Runtime::Internal::BlockAllocator::default_config ( ) const

Definition at line 628 of file block_allocator.h.

◆ block_count()

size_t Halide::Runtime::Internal::BlockAllocator::block_count ( ) const

Definition at line 633 of file block_allocator.h.

References Halide::Runtime::Internal::LinkedList::size().

◆ pool_size()


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