|
void | control_map_get_blocs (control c, list *l) |
| Build recursively the list of all controls reachable from a control of an unstructured. More...
|
|
void | find_a_control_path (control b, control e, list *pp, list *vp, int dir) |
| Build recursively a control path from b to e. More...
|
|
void | backward_control_map_get_blocs (c, l) |
| Build recursively the list of all controls backward-reachable from a control of an unstructured. More...
|
|
void | backward_control_map_get_blocs_but (control c, control f, list *l) |
| Transitive closure of c's predecessors, but for control f. More...
|
|
void | forward_control_map_get_blocs (c, l) |
| Build recursively the list of all controls forward-reachable from a control of an unstructured. More...
|
|
void | forward_control_map_get_blocs_but (control c, control f, list *l) |
| Transitive closure of c's successors, but for control f. More...
|
|
void | wide_forward_control_map_get_blocs (c, l) |
| Same as above, but follows successors by minimal path lengths. More...
|
|
bool | is_control_in_list_p (control c, list cs) |
| Test if a control node is in a list of control nodes. More...
|
|
int | occurences_in_control_list (control c, list cs) |
| Count the number of occurences of a control node in a list of control nodes. More...
|
|
void | control_list_patch (list l, control c_old, control c_new) |
| Replace in a list of control nodes all the instance of a control node by another one. More...
|
|
void | transfer_control_predecessor (control old_node, control new_node, control c) |
| Transfer a control node as a predecessor from one node to another one. More...
|
|
void | transfer_control_successor (control old_node, control new_node, control c) |
| Transfer a control node as a successor of one node to another one. More...
|
|
void | replace_control_related_to_a_list (control old_node, control new_node, list controls) |
| Replace all the references to a control node by a new one in the successors & predecessors of a list of controls. More...
|
|
void | check_control_coherency (control c) |
| Test the coherency of a control node network from a control node. More...
|
|
void | print_control_node (control c) |
|
void | print_control_nodes (list l) |
| Display identification of a list of control nodes. More...
|
|
void | display_address_of_control_nodes (list cs) |
| Display the adresses a list of control nodes. More...
|
|
void | display_linked_control_nodes (control c) |
| Display all the control nodes reached or reachable from c for debugging purpose. More...
|
|
void | remove_unreachable_following_control (control c, control do_not_delete_node, control do_not_delete_node_either) |
| Remove all the control nodes (with their statements) from c in the successor tree of c up to the nodes with more than 1 predecessor, that is when it reach another flow. More...
|
|
void | remove_some_unreachable_controls_of_an_unstructured (unstructured u) |
| Remove all the control sequences that are unreachable and that begin with a node without any predecessor. More...
|
|
void | remove_all_unreachable_controls_of_an_unstructured (unstructured u) |
| Remove all control nodes that are not forward reachable from the entry node. More...
|
|
void | remove_a_control_from_a_list_and_relink (control c, list a_source_control_list_of_c, list a_dest_control_list_of_c, remove_a_control_from_a_list_and_relink_direction which_way) |
| Replace each occurence of c in a_source_control_list_of_c with a a_dest_control_list_of_c: More...
|
|
void | remove_a_control_from_an_unstructured (control c) |
| Remove a control node from a control graph. More...
|
|
void | remove_a_control_from_an_unstructured_without_relinking (control c) |
| It removes a control node from its successor and predecessor. More...
|
|
void | discard_an_unstructured_without_its_statements (unstructured u) |
| Used to discard an unstructured without touching its statements. More...
|
|
void | free_a_control_without_its_statement (control c) |
| Remove a control node without touching its statement, its predecessors and successors, if any. More...
|
|
void | discard_a_control_sequence_without_its_statements (control begin, control end) |
| Remove a control sequence without touching its statements. More...
|
|
list | generate_a_statement_list_from_a_control_sequence (control begin, control end) |
| Take a control sequence and return a list of all the statements in the sequence (in the same order... More...
|
|
void | link_2_control_nodes (control source, control target) |
| Add an edge between 2 control nodes. More...
|
|
void | link_3_control_nodes (control c_test, control c_then, control c_else) |
| Add an edge between 2 control nodes. More...
|
|
void | unlink_2_control_nodes (control source, control target) |
| Remove all edged between 2 control nodes. More...
|
|
void | insert_control_in_arc (control c, control before, control after) |
| Insert a control node between 2 connected control nodes. More...
|
|
void | fuse_2_control_nodes (control first, control second) |
| Fuse a 2 control nodes. More...
|
|