GCC Middle and Back End API Reference
|
Public Types | |
typedef redirection_data * | value_type |
typedef redirection_data * | 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 (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 el * | incoming_edges |
Static Public Attributes | |
static const bool | empty_zero_p |
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.
|
inherited |
|
inherited |
|
inlinestaticinherited |
|
inlinestatic |
|
inlinestaticinherited |
|
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 |
|
inlinestaticinherited |
|
inlinestaticinherited |
|
inlinestaticinherited |
|
inlinestaticinherited |
Remove with free.
basic_block redirection_data::dup_blocks[2] |
|
staticinherited |
struct el* redirection_data::incoming_edges |
vec<jump_thread_edge *>* redirection_data::path |