GCC Middle and Back End API Reference
alloc-pool.h File Reference
#include "memory-block.h"
#include "options.h"
Include dependency graph for alloc-pool.h:

Go to the source code of this file.

Data Structures

class  pool_usage
 
class  base_pool_allocator< TBlockAllocator >
 
struct  base_pool_allocator< TBlockAllocator >::allocation_pool_list
 
struct  base_pool_allocator< TBlockAllocator >::allocation_object
 
class  object_allocator< T >
 
struct  alloc_pool_descriptor
 

Typedefs

typedef unsigned long ALLOC_POOL_ID_TYPE
 
typedef base_pool_allocator< memory_block_poolpool_allocator
 

Functions

void dump_alloc_pool_statistics (void)
 
template<typename T >
void * operator new (size_t, object_allocator< T > &a)
 

Variables

bool after_memory_report
 
ALLOC_POOL_ID_TYPE last_id
 
mem_alloc_description< pool_usagepool_allocator_usage
 
hash_map< const char *, alloc_pool_descriptor > * alloc_pool_hash
 

Typedef Documentation

◆ ALLOC_POOL_ID_TYPE

typedef unsigned long ALLOC_POOL_ID_TYPE

◆ pool_allocator

Specialization of base_pool_allocator which should be used in most cases.
Another specialization may be needed, if object size is greater than
memory_block_pool::block_size (64 KB).   

Function Documentation

◆ dump_alloc_pool_statistics()

void dump_alloc_pool_statistics ( void )
extern
Functions to support a pool of allocatable objects
   Copyright (C) 1997-2024 Free Software Foundation, Inc.
   Contributed by Daniel Berlin <dan@cgsoftware.com>

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
Output per-alloc_pool memory usage statistics.   

References ALLOC_POOL_ORIGIN, mem_alloc_description< T >::dump(), and pool_allocator_usage.

Referenced by dump_memory_report().

◆ operator new()

template<typename T >
void * operator new ( size_t ,
object_allocator< T > & a )
inline
Helper for classes that do not provide default ctor.   

References a.

Variable Documentation

◆ after_memory_report

bool after_memory_report
extern
Flag indicates whether memory statistics are gathered any longer.   

Referenced by toplev::main(), and base_pool_allocator< TBlockAllocator >::release().

◆ alloc_pool_hash

hash_map<const char *, alloc_pool_descriptor>* alloc_pool_hash
extern
Hashtable mapping alloc_pool names to descriptors.   

◆ last_id

ALLOC_POOL_ID_TYPE last_id
extern
Last used ID.   
Functions to support a pool of allocatable objects.
   Copyright (C) 1987-2024 Free Software Foundation, Inc.
   Contributed by Daniel Berlin <dan@cgsoftware.com>

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   

Referenced by base_pool_allocator< TBlockAllocator >::initialize(), parser::parser(), and parser::push_simplify().

◆ pool_allocator_usage