GCC Middle and Back End API Reference
pointer_hash< Type > Struct Template Reference

#include <hash-traits.h>

Inherited by delete_ptr_hash< iv_common_cand >, free_ptr_hash< action_record >, free_ptr_hash< biv_entry >, free_ptr_hash< dead_debug_global_entry >, free_ptr_hash< decl_table_entry >, free_ptr_hash< ttypes_filter >, free_ptr_hash< external_ref >, free_ptr_hash< finally_tree_node >, free_ptr_hash< elt_t >, free_ptr_hash< invariant_expr_entry >, free_ptr_hash< iv_inv_expr_ent >, free_ptr_hash< iv_to_split >, free_ptr_hash< locus_discrim_map >, free_ptr_hash< name_to_copy_elt >, free_ptr_hash< _vect_peel_info >, free_ptr_hash< redirection_data >, free_ptr_hash< reduction_info >, free_ptr_hash< ref_to_bb >, free_ptr_hash< ptr_data >, free_ptr_hash< shared_bitmap_info >, free_ptr_hash< simd_array_to_simduid >, free_ptr_hash< simduid_to_vf >, free_ptr_hash< tm_new_mem_map >, free_ptr_hash< tm_memop >, free_ptr_hash< var_to_expand >, free_ptr_hash< var_info >, free_ptr_hash< vn_constant_s >, ggc_cache_ptr_hash< tree_node >, ggc_cache_ptr_hash< rtx_def >, ggc_cache_ptr_hash< reg_attrs >, ggc_cache_ptr_hash< tree_map >, ggc_cache_ptr_hash< tree_decl_map >, ggc_cache_ptr_hash< tree_type_map >, ggc_cache_ptr_hash< tree_vec_map >, ggc_cache_ptr_hash< type_hash >, ggc_ptr_hash< addr_table_entry >, ggc_ptr_hash< symtab_node >, ggc_ptr_hash< die_struct >, ggc_ptr_hash< cgraph_edge >, ggc_ptr_hash< constant_descriptor_rtx >, ggc_ptr_hash< ctf_dtdef_t >, ggc_ptr_hash< ctf_dvdef_t >, ggc_ptr_hash< die_node >, ggc_ptr_hash< var_loc_list >, ggc_ptr_hash< lto_in_decl_state >, ggc_ptr_hash< cached_dw_loc_list >, ggc_ptr_hash< dwarf_file_data >, ggc_ptr_hash< cgraph_function_version_info >, ggc_ptr_hash< indirect_string_node >, ggc_ptr_hash< inline_entry_data >, ggc_ptr_hash< tree_node >, ggc_ptr_hash< libfunc_entry >, ggc_ptr_hash< loop_exit >, ggc_ptr_hash< object_block >, ggc_ptr_hash< omp_declare_variant_base_entry >, ggc_ptr_hash< scev_info_str >, ggc_ptr_hash< section >, ggc_ptr_hash< section_hash_entry >, ggc_ptr_hash< temp_slot_address_entry >, ggc_ptr_hash< tm_restart_node >, ggc_ptr_hash< constant_descriptor_tree >, ggc_ptr_hash< types_used_by_vars_entry >, ggc_ptr_hash< variable_value_struct >, nofree_ptr_hash< allocno_hard_regs >, nofree_ptr_hash< asan_mem_ref >, nofree_ptr_hash< attribute_spec >, nofree_ptr_hash< cand_chain >, nofree_ptr_hash< coalesce_pair >, nofree_ptr_hash< comdat_type_node >, nofree_ptr_hash< constant_descriptor_rtx_data >, nofree_ptr_hash< cselib_val >, nofree_ptr_hash< struct data_dependence_relation >, nofree_ptr_hash< equiv_class_label >, nofree_ptr_hash< const char * >, nofree_ptr_hash< expr >, nofree_ptr_hash< histogram_entry >, nofree_ptr_hash< id_base >, nofree_ptr_hash< innermost_loop_behavior >, nofree_ptr_hash< rtx_def >, nofree_ptr_hash< group_info >, nofree_ptr_hash< congruence_class_group >, nofree_ptr_hash< symbol_compare_collection >, nofree_ptr_hash< dw_loc_list_struct >, nofree_ptr_hash< macinfo_entry >, nofree_ptr_hash< mem_location >, nofree_ptr_hash< im_mem_ref >, nofree_ptr_hash< pre_expr_d >, nofree_ptr_hash< ls_expr >, nofree_ptr_hash< struct vtable_registration >, nofree_ptr_hash< edge_def >, nofree_ptr_hash< simplifiable_subreg >, nofree_ptr_hash< tree_node >, nofree_ptr_hash< st_expr >, nofree_ptr_hash< string_pair_map >, nofree_ptr_hash< string_slot >, nofree_ptr_hash< merge_state_info >, nofree_ptr_hash< dw_trace_info >, nofree_ptr_hash< vn_nary_op_s >, nofree_ptr_hash< vn_phi_s >, nofree_ptr_hash< vn_reference_s >, and nofree_ptr_hash< struct vtbl_map_node >.

Public Types

typedef Typevalue_type
 
typedef Typecompare_type
 

Static Public Member Functions

static hashval_t hash (const value_type &)
 
static bool equal (const value_type &existing, const compare_type &candidate)
 
static void mark_deleted (Type *&)
 
static void mark_empty (Type *&)
 
static bool is_deleted (Type *)
 
static bool is_empty (Type *)
 

Static Public Attributes

static const bool empty_zero_p = true
 

Detailed Description

template<typename Type>
struct pointer_hash< Type >
Pointer hasher based on pointer equality.  Other types of pointer hash
can inherit this and override the hash and equal functions with some
other form of equality (such as string equality).   

Member Typedef Documentation

◆ compare_type

template<typename Type >
typedef Type* pointer_hash< Type >::compare_type

◆ value_type

template<typename Type >
typedef Type* pointer_hash< Type >::value_type

Member Function Documentation

◆ equal()

template<typename Type >
bool pointer_hash< Type >::equal ( const value_type & existing,
const compare_type & candidate )
inlinestatic

References candidate(), and ggc_alloc().

◆ hash()

template<typename Type >
hashval_t pointer_hash< Type >::hash ( const value_type & candidate)
inlinestatic

References candidate(), and ggc_alloc().

◆ is_deleted()

template<typename Type >
bool pointer_hash< Type >::is_deleted ( Type * e)
inlinestatic

References ggc_alloc().

◆ is_empty()

template<typename Type >
bool pointer_hash< Type >::is_empty ( Type * e)
inlinestatic

References NULL.

◆ mark_deleted()

template<typename Type >
void pointer_hash< Type >::mark_deleted ( Type *& e)
inlinestatic

References ggc_alloc().

◆ mark_empty()

template<typename Type >
void pointer_hash< Type >::mark_empty ( Type *& e)
inlinestatic

References NULL.

Field Documentation

◆ empty_zero_p

template<typename Type >
const bool pointer_hash< Type >::empty_zero_p = true
static

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