GCC Middle and Back End API Reference
tree_decl_hash Struct Reference

#include <tree.h>

Inheritance diagram for tree_decl_hash:
Collaboration diagram for tree_decl_hash:

Public Types

typedef tree_node * value_type
 
typedef tree_node * compare_type
 

Static Public Member Functions

static hashval_t hash (tree)
 
static hashval_t hash (const value_type &)
 
static bool equal (const value_type &existing, const compare_type &candidate)
 
static void mark_deleted (tree_node *&)
 
static void mark_empty (tree_node *&)
 
static bool is_deleted (tree_node *)
 
static bool is_empty (tree_node *)
 
static void remove (tree_node *&)
 
static void ggc_mx (tree_node *&p)
 
static void ggc_maybe_mx (tree_node *&p)
 
static void pch_nx (tree_node *&p)
 
static void pch_nx (tree_node *&p, gt_pointer_operator op, void *cookie)
 

Static Public Attributes

static const bool empty_zero_p
 

Detailed Description

Hasher for tree decls.  Pointer equality is enough here, but the DECL_UID
is a better hash than the pointer value and gives a predictable traversal
order.  Additionally it can be used across PCH save/restore.   

Member Typedef Documentation

◆ compare_type

typedef tree_node* pointer_hash< tree_node >::compare_type
inherited

◆ value_type

typedef tree_node* pointer_hash< tree_node >::value_type
inherited

Member Function Documentation

◆ equal()

bool pointer_hash< tree_node >::equal ( const value_type & existing,
const compare_type & candidate )
inlinestaticinherited

◆ ggc_maybe_mx()

static void ggc_remove< tree_node * >::ggc_maybe_mx ( tree_node * & p)
inlinestaticinherited

◆ ggc_mx()

static void ggc_remove< tree_node * >::ggc_mx ( tree_node * & p)
inlinestaticinherited

◆ hash() [1/2]

hashval_t pointer_hash< tree_node >::hash ( const value_type & candidate)
inlinestaticinherited

◆ hash() [2/2]

hashval_t tree_decl_hash::hash ( tree t)
inlinestatic

References DECL_UID.

◆ is_deleted()

bool pointer_hash< tree_node >::is_deleted ( tree_node * e)
inlinestaticinherited

◆ is_empty()

bool pointer_hash< tree_node >::is_empty ( tree_node * e)
inlinestaticinherited

◆ mark_deleted()

void pointer_hash< tree_node >::mark_deleted ( tree_node *& e)
inlinestaticinherited

◆ mark_empty()

void pointer_hash< tree_node >::mark_empty ( tree_node *& e)
inlinestaticinherited

◆ pch_nx() [1/2]

static void ggc_remove< tree_node * >::pch_nx ( tree_node * & p)
inlinestaticinherited

◆ pch_nx() [2/2]

static void ggc_remove< tree_node * >::pch_nx ( tree_node * & p,
gt_pointer_operator op,
void * cookie )
inlinestaticinherited

◆ remove()

static void ggc_remove< tree_node * >::remove ( tree_node * & )
inlinestaticinherited

Field Documentation

◆ empty_zero_p

const bool pointer_hash< tree_node >::empty_zero_p
staticinherited

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