GCC Middle and Back End API Reference
alloc-pool.c File Reference

Data Structures

struct  allocation_object_def
struct  alloc_pool_descriptor
struct  alloc_pool_hasher
struct  output_info

Typedefs

typedef struct
allocation_object_def 
allocation_object

Functions

static struct
alloc_pool_descriptor
allocate_pool_descriptor ()
alloc_pool create_alloc_pool ()
void empty_alloc_pool ()
void free_alloc_pool ()
void free_alloc_pool_if_empty ()
void * pool_alloc ()
void pool_free ()
int print_alloc_pool_statistics (alloc_pool_descriptor **slot, struct output_info *i)
void dump_alloc_pool_statistics ()

Variables

static ALLOC_POOL_ID_TYPE last_id
static hash_table
< alloc_pool_hasher
alloc_pool_hash

Typedef Documentation

The internal allocation object.   

Function Documentation

void free_alloc_pool_if_empty ( )
Frees the alloc_pool, if it is empty and zero *POOL in this case.   

References free_alloc_pool().

Referenced by et_free_pools(), and sched_deps_finish().

void* pool_alloc ( )
Allocates one element from the pool specified.   

References allocate_pool_descriptor(), alloc_pool_descriptor::allocated, alloc_pool_def::block_list, alloc_pool_def::block_size, alloc_pool_def::blocks_allocated, alloc_pool_descriptor::current, allocation_object_def::data, alloc_pool_def::elt_size, alloc_pool_def::elts_allocated, alloc_pool_def::elts_free, alloc_pool_def::elts_per_block, alloc_pool_def::id, alloc_pool_def::name, alloc_pool_list_def::next, alloc_pool_descriptor::peak, alloc_pool_def::returned_free_list, alloc_pool_def::virgin_elts_remaining, and alloc_pool_def::virgin_free_list.

Referenced by _list_alloc(), account_time_size(), add_case_node(), add_repeat_to_ops_vec(), add_to_ops_vec(), add_value_source(), add_value_to_lattice(), asan_mem_ref_new(), attrs_list_copy(), attrs_list_insert(), bitmap_set_new(), build_accesses_from_assign(), check_mem_read_rtx(), compute_avail(), compute_bb_predicates(), copy_live_range(), copy_original_table_set(), copy_phi(), copy_reference(), create_access_1(), create_artificial_child_access(), create_dep_node(), create_deps_list(), create_live_range(), dataflow_set_merge(), df_chain_create(), df_grow_reg_info(), df_insn_create_insn_record(), df_ref_create_structure(), df_ref_record(), dse_step1(), edge_set_predicate(), emit_notes_for_differences_1(), et_new_occ(), et_new_tree(), get_group_info(), get_ops(), get_or_alloc_expr_for(), get_or_alloc_expr_for_constant(), get_or_alloc_expr_for_name(), insert_into_intersection(), ipa_edge_duplication_hook(), ipa_set_jf_constant(), ira_allocate_cost_vector(), ira_create_allocno(), ira_create_copy(), ira_create_live_range(), ira_create_object(), loc_exp_insert_dep(), lra_create_copy(), maybe_optimize_range_tests(), merge_agg_lats_step(), new_constraint(), new_cselib_val(), new_elt_list(), new_elt_loc_list(), new_insn_reg(), new_strinfo(), new_var_info(), occ_new(), phi_translate_1(), record_store(), replace_oldest_value_reg(), replace_read(), scan_insn(), set_cond_stmt_execution_predicate(), set_hint_predicate(), set_slot_part(), set_switch_stmt_execution_predicate(), shared_hash_unshare(), unshare_variable(), variable_from_dropped(), variable_merge_over_cur(), variable_union(), variable_was_changed(), visit_reference_op_call(), vn_phi_insert(), vn_reference_insert(), vn_reference_insert_pieces(), and vt_initialize().

void pool_free ( )
Puts PTR back on POOL's free list.   

References allocate_pool_descriptor(), alloc_pool_descriptor::current, allocation_object_def::data, alloc_pool_def::elt_size, alloc_pool_def::elts_allocated, alloc_pool_def::elts_free, alloc_pool_def::id, memset(), alloc_pool_def::name, alloc_pool_list_def::next, and alloc_pool_def::returned_free_list.

Referenced by _list_remove(), add_value_to_lattice(), attrs_list_clear(), canonicalize_values_star(), clobber_slot_part(), copy_original_table_clear(), dataflow_set_preserve_mem_locs(), dataflow_set_remove_mem_locs(), delete_dead_store_insn(), delete_dep_node(), delete_slot_part(), df_chain_unlink(), df_chain_unlink_1(), df_free_collection_rec(), df_free_ref(), df_insn_info_delete(), df_mw_hardreg_chain_delete(), df_mw_hardreg_chain_delete_eq_uses(), df_sort_and_compress_mws(), drop_overlapping_mem_locs(), dse_step1(), edge_set_predicate(), estimate_function_body_sizes(), et_free_tree(), et_free_tree_force(), et_split(), finish_allocno(), finish_copy(), free_bb(), free_debug_insn_changes(), free_deps_list(), free_insn_reg(), free_live_range(), free_read_records(), free_store_info(), free_strinfo(), get_or_alloc_expr_for(), ira_finish_live_range(), ira_free_allocno_costs(), ira_free_cost_vector(), lra_free_copies(), lra_merge_live_ranges(), notify_dependents_of_changed_value(), remove_duplicate_values(), replace_read(), reset_inline_edge_summary(), reset_inline_summary(), set_hint_predicate(), set_slot_part(), shared_hash_destroy(), unchain_one_elt_list(), unchain_one_elt_loc_list(), unchain_one_value(), var_reg_delete(), var_reg_delete_and_set(), var_regno_delete(), variable_htab_free(), and variable_post_merge_new_vals().

int print_alloc_pool_statistics ( alloc_pool_descriptor **  slot,
struct output_info i 
)

Variable Documentation

hash_table<alloc_pool_hasher> alloc_pool_hash
static
Hashtable mapping alloc_pool names to descriptors.   
ALLOC_POOL_ID_TYPE last_id
static
Last used ID.   

Referenced by create_alloc_pool().