GCC Middle and Back End API Reference
|
Public Types | |
typedef Type * | value_type |
typedef Type * | compare_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 (Type *&) |
static void | mark_empty (Type *&) |
static bool | is_deleted (Type *) |
static bool | is_empty (Type *) |
static void | remove (Type *p) |
Data Fields | |
basic_block | dup_blocks [2] |
vec< jump_thread_edge * > * | path |
struct el * | incoming_edges |
Static Public Attributes | |
static const bool | empty_zero_p = true |
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.
|
inlinestatic |
Given two hash table entries, return true if they have the same jump threading path.
References ggc_alloc(), and i.
|
inlinestaticinherited |
References candidate(), and ggc_alloc().
|
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.
|
inlinestaticinherited |
References candidate(), and ggc_alloc().
References ggc_alloc().
References NULL.
References ggc_alloc().
References NULL.
Remove with free.
References free().
basic_block redirection_data::dup_blocks[2] |
Referenced by fwd_jt_path_registry::lookup_redirection_data().
Referenced by fwd_jt_path_registry::lookup_redirection_data().
vec<jump_thread_edge *>* redirection_data::path |
Referenced by hash(), and fwd_jt_path_registry::lookup_redirection_data().