#include <iterator>#include <set>#include <map>#include <functional>#include "opt_defs.h"#include <stdio.h>


Go to the source code of this file.
Data Types | |
| module | composite_iterator< Cluster_iterator, Fast_iterator > |
| module | cluster_vector< T, IndexFunction > |
| type | one_dimensional_container_tag |
| type | two_dimensional_container_tag |
| type | container_traits< Container > |
| type | container_traits< cluster_vector< T, Indexfunction > > |
| type | vertex |
| type | edge |
| type | fp_print< T > |
| type | zone |
| type | path_type |
| type | less< path_type * > |
Defines | |
| #define | opt_cfg_trans_INCLUDED "opt_cfg_trans.h" |
| #define | USE_STANDARD_TYPE |
Typedefs | |
| typedef int | vertex_id |
| typedef cluster_vector< edge, std::_Select1st< edge > > | successor_graph |
| typedef cluster_vector< edge, std::_Select2nd< edge > > | predecessor_graph |
| typedef vector< zone > | zone_container |
| typedef zone_container::iterator | zone_iterator |
Functions/Subroutines | |
| template<class Cluster_iterator> | |
| bool | adjacent (Cluster_iterator c1, const Cluster_iterator c2) |
| template<class Container> | |
| container_traits< Container > ::container_category | container_category (const Container &) |
| template<class Graph, class Edge> | |
| Edge & | add_edge (Graph &g, const Edge &e) |
| template<class Graph, class Forward_Iterator> | |
| void | add_edge (Graph &g, Forward_Iterator first, Forward_Iterator last) |
| template<class Graph, class Vertex> | |
| Graph::value_type * | find_edge (Graph &g, Vertex from, Vertex to) |
| template<class Graph, class Vertex> | |
| bool | erase_edge (Graph &g, Vertex from, Vertex to) |
| template<class Graph_in, class Graph_out> | |
| void | reverse_graph (Graph_in &in, Graph_out &out, one_dimensional_container_tag) |
| template<class Graph_in, class Graph_out> | |
| void | reverse_graph (Graph_in &in, Graph_out &out, two_dimensional_container_tag) |
| template<class Graph_in, class Graph_out> | |
| void | reverse_graph (Graph_in &in, Graph_out &out) |
| template<class Graph, class Vertex_id, class Insert_iterator, class Visited_set> | |
| void | generate_post_order (Graph &g, Vertex_id v, Insert_iterator &ii, Visited_set &visited) |
| template<class Graph, class Vertex_id, class Container> | |
| void | generate_post_order (Graph &g, Vertex_id root, Container &c) |
| template<class Graph, class Vertex_id> | |
| void | find_reachable_vertex_set (Graph &g, Vertex_id v, vector< bool > &reachable) |
| template<class Graph_in, class Graph_out> | |
| void | subgraph (Graph_in &in, Graph_out &out, vector< bool > &vertex_set) |
| template<class Graph_in, class Graph_out> | |
| void | copy (Graph_in &in, Graph_out &out) |
| template<class Graph> | |
| void | erase (Graph &g) |
| template<class Graph, class Vertex_id, class Container> | |
| void | generate_reverse_post_order (Graph &g, Vertex_id root, Container &c) |
| template<class Graph, class Vertex_id, class Container> | |
| void | topological_sort (Graph &in, Vertex_id root, Container &out) |
| template<class Graph> | |
| void | print_nodes (Graph &g, FILE *fp=stdout) |
| template<class Graph> | |
| void | print_edges (Graph &g, FILE *fp=stdout) |
| edge & | add_edge (vector< edge > &g, const edge &e) |
| vertex_id | first (edge e) |
| vertex_id | second (edge e) |
| static int | unique_bb_count (vector< edge > &clone, vector< edge > &exit) |
| void | print_path_type (path_type *, FILE *) |
| void | print_vertex_set (std::set< vertex_id > *, FILE *) |
| void | generate_conditional_const_zones (COMP_UNIT *cu, successor_graph &g, zone_container &zones, bool trace) |
| void | generate_loop_butterfly_zones (COMP_UNIT *cu, successor_graph &g, zone_container &zones, int, bool trace) |
| #define opt_cfg_trans_INCLUDED "opt_cfg_trans.h" |
Definition at line 63 of file opt_cfg_trans.h.
| #define USE_STANDARD_TYPE |
Definition at line 70 of file opt_cfg_trans.h.
| typedef cluster_vector<edge, std::_Select2nd<edge> > predecessor_graph |
Definition at line 550 of file opt_cfg_trans.h.
| typedef cluster_vector<edge, std::_Select1st<edge> > successor_graph |
Definition at line 549 of file opt_cfg_trans.h.
| typedef int vertex_id |
Definition at line 74 of file opt_cfg_trans.h.
| typedef vector<zone> zone_container |
Definition at line 658 of file opt_cfg_trans.h.
| typedef zone_container::iterator zone_iterator |
Definition at line 659 of file opt_cfg_trans.h.
Definition at line 537 of file opt_cfg_trans.h.
| void add_edge | ( | Graph & | g, | |
| Forward_Iterator | first, | |||
| Forward_Iterator | last | |||
| ) | [inline] |
| Edge& add_edge | ( | Graph & | g, | |
| const Edge & | e | |||
| ) | [inline] |
Definition at line 286 of file opt_cfg_trans.h.
References first, and second().
Referenced by add_edge(), interference_cache::add_zone(), build_call_graph(), build_successor_graph(), clone_zones(), connect_butterfly_zone(), copy(), generate_loop_butterfly_zones(), mark_irreducible_loops(), reconstruct_CFG(), reverse_graph(), and subgraph().
| bool adjacent | ( | Cluster_iterator | c1, | |
| const Cluster_iterator | c2 | |||
| ) | [inline] |
Definition at line 77 of file opt_cfg_trans.h.
| container_traits<Container>::container_category container_category | ( | const Container & | ) | [inline] |
| void copy | ( | Graph_in & | in, | |
| Graph_out & | out | |||
| ) | [inline] |
| void erase | ( | Graph & | g | ) | [inline] |
| bool erase_edge | ( | Graph & | g, | |
| Vertex | from, | |||
| Vertex | to | |||
| ) | [inline] |
Definition at line 315 of file opt_cfg_trans.h.
| Graph::value_type* find_edge | ( | Graph & | g, | |
| Vertex | from, | |||
| Vertex | to | |||
| ) | [inline] |
Definition at line 300 of file opt_cfg_trans.h.
References NULL.
Referenced by add_phi_args_after_copy_bb(), associate_equivalences_with_edges(), build_successor_graph(), bypass_block(), cached_make_edge(), can_duplicate_block_p(), clone_zones(), connect_acyclic_zone(), connect_butterfly_zone(), disband_implicit_edges(), expand_omp_for_static_nochunk(), find_taken_edge_computed_goto(), find_taken_edge_switch_expr(), force_single_succ_latches(), get_cases_for_edge(), loop_latch_edge(), loop_version(), lv_adjust_loop_header_phi(), make_edge(), make_edges(), mark_eh_edge(), mf_build_check_statement_for(), phi_translate(), predict_loops(), propagate_freq(), prune_undesirable_thread_requests(), redirect_edge_succ_nodup(), remove_forwarder_block(), remove_forwarder_block_with_phi(), rtl_flow_call_edges_add(), split_edge_bb_loc(), tail_duplicate(), tree_flow_call_edges_add(), tree_forwarder_block_p(), tree_lv_adjust_loop_header_phi(), tree_redirect_edge_and_branch(), tree_split_edge(), tree_ssa_loop_version(), and VEC().
| void generate_conditional_const_zones | ( | COMP_UNIT * | cu, | |
| successor_graph & | g, | |||
| zone_container & | zones, | |||
| bool | trace | |||
| ) |
Referenced by generate_zones().
| void generate_loop_butterfly_zones | ( | COMP_UNIT * | cu, | |
| successor_graph & | g, | |||
| zone_container & | zones, | |||
| int | , | |||
| bool | trace | |||
| ) |
Referenced by generate_zones().
| void generate_post_order | ( | Graph & | g, | |
| Vertex_id | root, | |||
| Container & | c | |||
| ) | [inline] |
Definition at line 377 of file opt_cfg_trans.h.
References generate_post_order(), i, ii, and visited.
| void generate_post_order | ( | Graph & | g, | |
| Vertex_id | v, | |||
| Insert_iterator & | ii, | |||
| Visited_set & | visited | |||
| ) | [inline] |
Definition at line 362 of file opt_cfg_trans.h.
References second().
Referenced by generate_post_order(), and generate_reverse_post_order().
| void generate_reverse_post_order | ( | Graph & | g, | |
| Vertex_id | root, | |||
| Container & | c | |||
| ) | [inline] |
Definition at line 441 of file opt_cfg_trans.h.
References generate_post_order(), and Is_True.
Referenced by reconstruct_CFG(), and topological_sort().
Definition at line 482 of file opt_cfg_trans.h.
References first, fp, fprintf(), and second().
Referenced by clone_zones(), zone::print(), print_pred_graph(), and print_succ_graph().
Definition at line 464 of file opt_cfg_trans.h.
References fp, fprintf(), INT, and n.
Referenced by CFG_transformation(), and clone_zones().
| void reverse_graph | ( | Graph_in & | in, | |
| Graph_out & | out | |||
| ) | [inline] |
Definition at line 355 of file opt_cfg_trans.h.
References container_category(), and reverse_graph().
| void reverse_graph | ( | Graph_in & | in, | |
| Graph_out & | out, | |||
| two_dimensional_container_tag | ||||
| ) | [inline] |
| void reverse_graph | ( | Graph_in & | in, | |
| Graph_out & | out, | |||
| one_dimensional_container_tag | ||||
| ) | [inline] |
Definition at line 332 of file opt_cfg_trans.h.
References add_edge(), first, and second().
Referenced by reverse_graph().
Definition at line 547 of file opt_cfg_trans.h.
References edge::second.
Referenced by interference_cache::add_edge(), add_edge(), arc_print_operand(), BB_Hold_Disjoint_Speculative_Code(), c_parser_initelt(), CFG_transformation(), CGTARG_TN_For_Asm_Operand(), combine_predictions_for_bb(), d_expression(), Delete_Recovery_Info_For_BB(), erase_from_child(), erase_from_parent(), execute_stack_op(), f8_record(), interference_cache::find_interference_from_edge(), find_reachable_vertex_set(), generate_post_order(), WN_TREE_ITER_base< WN * >::Get_kid_index(), VN_INTR_OP_EXPR::get_vsym(), i960_output_ldconst(), ia64_copy_rbs(), WN_TREE_ITER_base< WN * >::Inc_kid_index(), insert(), ix86_split_fp_branch(), IPO_INLINE_AUX::Local_ST_Not_Processed(), m32r_print_operand(), m68hc11_gen_highpart(), m68hc11_gen_lowpart(), merge_subprograms(), print_edges(), print_insn(), reconstruct_CFG(), reverse_graph(), WN_TREE_ITER_base< WN * >::Set_kid_index(), Set_Speculative_Chain_Begin_Point(), Split_Block(), subgraph(), SWP_Update_Lifetime(), unique_bb_count(), update_pu_dst_indices(), verify_name_tags(), visit_each_hash_node(), and vr4130_avoid_branch_rt_conflict().
| void subgraph | ( | Graph_in & | in, | |
| Graph_out & | out, | |||
| vector< bool > & | vertex_set | |||
| ) | [inline] |
Definition at line 415 of file opt_cfg_trans.h.
References add_edge(), first, and second().
Referenced by clone_zones().
| void topological_sort | ( | Graph & | in, | |
| Vertex_id | root, | |||
| Container & | out | |||
| ) | [inline] |
Definition at line 452 of file opt_cfg_trans.h.
References copy, g, and generate_reverse_post_order().
Definition at line 599 of file opt_cfg_trans.h.
References count, first, i, second(), target, and visited.
Referenced by zone::code_expansion(), and merge_zone().
1.5.6