GCC Middle and Back End API Reference
va_gc_atomic Struct Reference

#include <vec.h>

Inheritance diagram for va_gc_atomic:
Collaboration diagram for va_gc_atomic:

Public Types

typedef vl_embed default_layout
 

Public Member Functions

template<typename T , typename A >
void reserve (vec< T, A, vl_embed > *&v, unsigned reserve, bool exact MEM_STAT_DECL)
 

Static Public Member Functions

template<typename T , typename A >
static void reserve (vec< T, A, vl_embed > *&, unsigned, bool CXX_MEM_STAT_INFO)
 
template<typename T , typename A >
static void release (vec< T, A, vl_embed > *&v)
 

Detailed Description

Allocator type for GC vectors.  This is for vectors of types
atomics w.r.t. collection, so allocation and deallocation is
completely inherited from va_gc.   

Member Typedef Documentation

◆ default_layout

typedef vl_embed va_gc::default_layout
inherited

Member Function Documentation

◆ release()

template<typename T , typename A >
void va_gc::release ( vec< T, A, vl_embed > *& v)
inlinestaticinherited
Free GC memory used by V and reset V to NULL.   

References ggc_free(), and NULL.

◆ reserve() [1/2]

template<typename T , typename A >
static void va_gc::reserve ( vec< T, A, vl_embed > *& ,
unsigned ,
bool CXX_MEM_STAT_INFO )
staticinherited

Referenced by va_gc::reserve().

◆ reserve() [2/2]

template<typename T , typename A >
void va_gc::reserve ( vec< T, A, vl_embed > *& v,
unsigned reserve,
bool exact MEM_STAT_DECL )
inherited
Allocator for GC memory.  Ensure there are at least RESERVE free
slots in V.  If EXACT is true, grow exactly, else grow
exponentially.  As a special case, if the vector had not been
allocated and RESERVE is 0, no vector will be created.   

References vec_prefix::calculate_allocation(), ggc_free(), ggc_realloc(), ggc_round_alloc_size(), NULL, PASS_MEM_STAT, va_gc::reserve(), and T.


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