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 value_type *) |
static int | equal (const value_type *, const compare_type *) |
static void | remove (redirection_data *p) |
Data Fields | |
basic_block | dup_block |
edge | outgoing_edge |
edge | intermediate_edge |
struct el * | incoming_edges |
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 |
References intermediate_edge, and outgoing_edge.
|
inlinestatic |
References edge_def::dest, el::e, basic_block_def::index, and outgoing_edge.
|
inlinestaticinherited |
Remove with free.
basic_block redirection_data::dup_block |
struct el* redirection_data::incoming_edges |
Referenced by lookup_redirection_data(), ssa_fix_duplicate_block_edges(), and ssa_redirect_edges().
edge redirection_data::intermediate_edge |
Referenced by equal(), and lookup_redirection_data().
edge redirection_data::outgoing_edge |
Referenced by create_edge_and_update_destination_phis(), equal(), hash(), lookup_redirection_data(), and thread_single_edge().