|
libFirm
|
Construct and access dominator tree. More...
Go to the source code of this file.
Macros | |
| #define | dominates_for_each(bl, curr) |
| Iterate over all nodes which are immediately dominated by a given node. | |
| #define | postdominates_for_each(bl, curr) |
| Iterate over all nodes which are immediately post dominated by a given node. | |
Functions | |
| ir_node * | get_Block_idom (const ir_node *block) |
| return immediate dominator of block | |
| ir_node * | get_Block_ipostdom (const ir_node *block) |
| return immediate postdominator of a block | |
| int | block_dominates (const ir_node *a, const ir_node *b) |
| Check, if a block dominates another block. | |
| int | block_strictly_dominates (const ir_node *a, const ir_node *b) |
| Check, if a block strictly dominates another block, i.e. | |
| int | block_postdominates (const ir_node *a, const ir_node *b) |
| Check, if a block post dominates another block. | |
| int | block_strictly_postdominates (const ir_node *a, const ir_node *b) |
| Check, if a block strictly post dominates another block, i.e. | |
| ir_node * | get_Block_dominated_first (const ir_node *block) |
| Returns the first node in the list of nodes dominated by a given block. | |
| ir_node * | get_Block_postdominated_first (const ir_node *bl) |
| Returns the first node in the list of nodes postdominated by a given blcok. | |
| ir_node * | get_Block_dominated_next (const ir_node *node) |
| Returns the next node in a list of nodes which are dominated by some other node. | |
| ir_node * | get_Block_postdominated_next (const ir_node *node) |
| Returns the next node in a list of nodes which are postdominated by another node. | |
| ir_node * | node_smallest_common_dominator (ir_node *a, ir_node *b) |
| Returns the smallest common dominator block of two nodes. | |
| void | dom_tree_walk (ir_node *n, irg_walk_func *pre, irg_walk_func *post, void *env) |
| Visit all nodes in the dominator subtree of a given node. | |
| void | postdom_tree_walk (ir_node *n, irg_walk_func *pre, irg_walk_func *post, void *env) |
| Visit all nodes in the post dominator subtree of a given node. | |
| void | dom_tree_walk_irg (ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env) |
| Walk over the dominator tree of an irg starting at the root. | |
| void | postdom_tree_walk_irg (ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env) |
| Walk over the post dominator tree of an irg starting at the root. | |
| void | compute_doms (ir_graph *irg) |
| Computes the dominance relation for all basic blocks of a given graph. | |
| void | assure_doms (ir_graph *irg) |
| Recomputes dominator relation of a graph if necessary. | |
| void | compute_postdoms (ir_graph *irg) |
| Computes the post dominance relation for all basic blocks of a given graph. | |
| void | assure_postdoms (ir_graph *irg) |
| Recompute postdominance relation if necessary. | |
| void | free_dom (ir_graph *irg) |
| Frees the dominance data structures. | |
| void | free_postdom (ir_graph *irg) |
| Frees the postdominance data structures. | |
| void | ir_compute_dominance_frontiers (ir_graph *irg) |
| Compute the dominance frontiers for a given graph. | |
| ir_node ** | ir_get_dominance_frontier (const ir_node *block) |
| Get the dominance frontier of a block. | |
Construct and access dominator tree.
Definition in file irdom.h.