GCC Middle and Back End API Reference
redirection_data Struct Reference
Inheritance diagram for redirection_data:
Collaboration diagram for redirection_data:

Public Types

typedef redirection_datavalue_type
 
typedef redirection_datacompare_type
 

Static Public Member Functions

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

Data Fields

basic_block dup_blocks [2]
 
vec< jump_thread_edge * > * path
 
struct elincoming_edges
 

Static Public Attributes

static const bool empty_zero_p
 

Detailed Description

Main data structure recording information regarding B's duplicate
blocks.   
We need to efficiently record the unique thread destinations of this
block and specific information associated with those destinations.  We
may have many incoming edges threaded to the same outgoing edge.  This
can be naturally implemented with a hash table.   

Member Typedef Documentation

◆ compare_type

redirection_data* pointer_hash< redirection_data >::compare_type
inherited

◆ value_type

redirection_data* pointer_hash< redirection_data >::value_type
inherited

Member Function Documentation

◆ equal() [1/2]

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

◆ equal() [2/2]

int redirection_data::equal ( const redirection_data * p1,
const redirection_data * p2 )
inlinestatic
Given two hash table entries, return true if they have the same
jump threading path.   

References i, and path.

◆ hash() [1/2]

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

◆ hash() [2/2]

hashval_t redirection_data::hash ( const redirection_data * p)
inlinestatic
Simple hashing function.  For any given incoming edge E, we're going
to be most concerned with the final destination of its jump thread
path.  So hash on the block index of the final edge in the path.   

References path.

◆ is_deleted()

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

◆ is_empty()

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

◆ mark_deleted()

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

◆ mark_empty()

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

◆ remove()

void typed_free_remove< redirection_data >::remove ( redirection_data * p)
inlinestaticinherited
Remove with free.   

Field Documentation

◆ dup_blocks

◆ empty_zero_p

const bool pointer_hash< redirection_data >::empty_zero_p
staticinherited

◆ incoming_edges

◆ path


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