GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | et_node |
Functions | |
struct et_node * | et_new_tree (void *data) |
void | et_free_tree (struct et_node *) |
void | et_free_tree_force (struct et_node *) |
void | et_free_pools (void) |
void | et_set_father (struct et_node *, struct et_node *) |
void | et_split (struct et_node *) |
struct et_node * | et_nca (struct et_node *, struct et_node *) |
bool | et_below (struct et_node *, struct et_node *) |
struct et_node * | et_root (struct et_node *) |
Checks whether the node UP is an ancestor of the node DOWN.
References et_splay(), et_occ::next, NULL, et_occ::parent, et_occ::prev, r, et_node::rightmost_occ, set_next(), and set_prev().
Referenced by dominated_by_p().
void et_free_pools | ( | void | ) |
Release the alloc pools, if they are empty.
References et_nodes, and et_occurrences.
Referenced by free_dominance_info(), and free_dominance_info_for_region().
void et_free_tree | ( | struct et_node * | t | ) |
Releases et tree T.
References et_nodes, et_occurrences, et_split(), et_node::father, et_node::rightmost_occ, and et_node::son.
Referenced by delete_from_dominance_info().
void et_free_tree_force | ( | struct et_node * | t | ) |
Releases et tree T without maintaining other nodes.
References et_nodes, et_occurrences, et_node::parent_occ, and et_node::rightmost_occ.
Referenced by free_dominance_info(), and free_dominance_info_for_region().
Finds the nearest common ancestor of the nodes N1 and N2.
References et_occ::depth, et_splay(), et_occ::min, et_occ::min_occ, et_occ::next, NULL, et_occ::of, et_occ::parent, et_occ::prev, r, et_node::rightmost_occ, set_next(), and set_prev().
Referenced by nearest_common_dominator().
struct et_node * et_new_tree | ( | void * | data | ) |
Create a new et tree containing DATA.
References et_node::data, et_new_occ(), et_nodes, et_node::father, et_node::left, NULL, et_node::parent_occ, et_node::right, et_node::rightmost_occ, and et_node::son.
Referenced by add_to_dominance_info(), calculate_dominance_info(), and calculate_dominance_info_for_region().
Returns the root of the tree that contains NODE.
References et_splay(), et_occ::next, r, and et_node::rightmost_occ.
Referenced by root_of_dom_tree().
Sets father of et tree T to FATHER.
References et_occ::depth, et_new_occ(), et_recomp_min(), et_splay(), et_node::father, et_node::left, et_occ::min, et_occ::min_occ, et_node::parent_occ, et_occ::prev, et_node::right, et_node::rightmost_occ, set_next(), set_prev(), and et_node::son.
Referenced by calculate_dominance_info(), calculate_dominance_info_for_region(), redirect_immediate_dominators(), and set_immediate_dominator().
void et_split | ( | struct et_node * | t | ) |
Splits the edge from T to its father.
References et_occ::depth, et_occurrences, et_recomp_min(), et_splay(), et_node::father, et_node::left, et_occ::min, et_occ::next, NULL, et_occ::parent, et_node::parent_occ, et_occ::prev, r, et_node::right, et_node::rightmost_occ, set_prev(), and et_node::son.
Referenced by et_free_tree(), redirect_immediate_dominators(), and set_immediate_dominator().