#include "mempool.h"


Go to the source code of this file.
Data Types | |
| type | NODE< T > |
| type | EDGE< T > |
| type | GRAPH |
| type | GRAPH_TEMPLATE< NODE_USER, EDGE_USER > |
| module | NODE_ITER |
| type | DFN |
Defines | |
| #define | INVALID_NODE_INDEX -1 |
| #define | INVALID_EDGE_INDEX -1 |
| #define | NODE_user(vertex) ((vertex)->user) |
| #define | NODE_from(vertex) ((vertex)->from) |
| #define | NODE_to(vertex) ((vertex)->to) |
| #define | NODE_fcnt(vertex) ((vertex)->fcnt) |
| #define | NODE_tcnt(vertex) ((vertex)->tcnt) |
| #define | NODE_level(vertex) ((vertex)->level) |
| #define | EDGE_user(edge) ((edge)->user) |
| #define | EDGE_from(edge) ((edge)->from) |
| #define | EDGE_to(edge) ((edge)->to) |
| #define | EDGE_nfrom(edge) ((edge)->nfrom) |
| #define | EDGE_nto(edge) ((edge)->nto) |
| #define | EDGE_etype(edge) ((edge)->etype) |
| #define | EDGE_RECURSIVE 1 |
| #define | Set_EDGE_recursive(edge) (EDGE_etype(edge) |= EDGE_RECURSIVE) |
| #define | EDGE_recursive(edge) (EDGE_etype(edge) & EDGE_RECURSIVE) |
| #define | GRAPH_vcnt(g) ((g)->vcnt) |
| #define | GRAPH_vmax(g) ((g)->vmax) |
| #define | GRAPH_vfree(g) ((g)->vfree) |
| #define | GRAPH_ecnt(g) ((g)->ecnt) |
| #define | GRAPH_emax(g) ((g)->emax) |
| #define | GRAPH_efree(g) ((g)->efree) |
| #define | GRAPH_root(g) ((g)->root) |
| #define | GRAPH_m(g) ((g)->m) |
| #define | GRAPH_v(g) ((g)->Nodes()) |
| #define | GRAPH_v_i(g, index) ((g)->Nodes()[index]) |
| #define | GRAPH_e(g) ((g)->Edges()) |
| #define | GRAPH_e_i(g, index) ((g)->Edges()[index]) |
| #define | FOR_EACH_NODE(g, v) |
| #define | DFN_first(d) ((d)->first) |
| #define | DFN_end(d) ((d)->end) |
| #define | DFN_v_list(d) ((d)->v_list) |
| #define | DFN_v_list_i(d, i) ((d)->v_list[i]) |
Typedefs | |
| typedef mINT32 | NODE_INDEX |
| typedef mINT32 | EDGE_INDEX |
Functions/Subroutines | |
| void | Print_DFN (const FILE *, DFN *) |
| DFN * | Depth_First_Ordering (GRAPH *, MEM_POOL *) |
| void | Free_DFN (DFN *, MEM_POOL *) |
Definition at line 372 of file ip_graph.h.
Referenced by IPA_DATA_FLOW::dataflow(), Depth_First_Ordering(), Extract_Solution(), IPA_DATA_FLOW::Init(), Initialize_Annotation(), IPA_DATA_FLOW::iterative_solver(), Iterative_Solver_Core(), IPAA_DF_SOLVER::Meet(), IPA_DATA_FLOW::Print(), and Print_DFN().
Definition at line 371 of file ip_graph.h.
Referenced by IPA_DATA_FLOW::dataflow(), Depth_First_Ordering(), Extract_Solution(), IPA_DATA_FLOW::Init(), Initialize_Annotation(), IPA_DATA_FLOW::iterative_solver(), Iterative_Solver_Core(), IPAA_DF_SOLVER::Meet(), IPA_DATA_FLOW::Print(), Print_DFN(), and Search().
Definition at line 374 of file ip_graph.h.
Referenced by IPA_DATA_FLOW::dataflow(), Extract_Solution(), IPA_DATA_FLOW::Init(), Initialize_Annotation(), IPA_DATA_FLOW::iterative_solver(), Iterative_Solver_Core(), IPAA_DF_SOLVER::Meet(), IPA_DATA_FLOW::Print(), Print_DFN(), and Search().
Definition at line 157 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), add_edge(), and IPA_EDGE::Print().
Definition at line 153 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), add_edge(), GRAPH::Build(), build_graph_u(), GRAPH::Delete_Edge(), delete_edge(), NODE_ITER::First_Pred(), first_v_preds(), grow_edge(), GRAPH::Grow_Edge_Array(), is_edge(), NODE_ITER::Next_Pred(), next_v_preds(), reverse_graph(), and Reverse_Graph().
Definition at line 155 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), add_edge(), GRAPH::Build(), build_graph_u(), GRAPH::Delete_Edge(), delete_edge(), GRAPH::Delete_Node(), delete_vertex(), edge_count(), NODE_ITER::First_Succ(), first_v_succs(), get_edge(), grow_edge(), GRAPH::Grow_Edge_Array(), NODE_ITER::Next_Succ(), next_v_succs(), reverse_graph(), and Reverse_Graph().
Definition at line 156 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), add_edge(), GRAPH::Delete_Edge(), delete_edge(), GRAPH::Delete_Node(), delete_vertex(), NODE_ITER::First_Pred(), first_v_preds(), NODE_ITER::Next_Pred(), next_v_preds(), reverse_graph(), and Reverse_Graph().
| #define EDGE_RECURSIVE 1 |
Definition at line 160 of file ip_graph.h.
Definition at line 154 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), add_edge(), GRAPH::Delete_Edge(), delete_edge(), edge_count(), NODE_ITER::First_Succ(), first_v_succs(), get_edge(), NODE_ITER::Next_Succ(), next_v_succs(), reverse_graph(), and Reverse_Graph().
Definition at line 152 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), add_edge(), GRAPH_TEMPLATE< NODE_USER, EDGE_USER >::Edge_User(), get_edge(), get_edge_u(), set_edge_u(), and GRAPH::Set_Edge_User().
| #define FOR_EACH_NODE | ( | g, | |||
| v | ) |
Value:
for ( v = 0; v < GRAPH_vmax(g); v++ ) \ if ( NODE_fcnt (&GRAPH_v_i(g,v)) != INVALID_NODE_INDEX )
Definition at line 300 of file ip_graph.h.
Referenced by DFBASE::Connect_graph().
Definition at line 297 of file ip_graph.h.
Referenced by add_edge(), build_graph_u(), delete_edge(), delete_vertex(), edge_count(), NODE_ITER::First_Pred(), NODE_ITER::First_Succ(), first_v_preds(), first_v_succs(), get_edge(), get_edge_u(), grow_edge(), is_edge(), ORDERED_NODE_ITER::MarkRecursive(), NODE_ITER::Next_Pred(), NODE_ITER::Next_Succ(), next_v_preds(), next_v_succs(), IPA_EDGE::Print(), reverse_graph(), Reverse_Graph(), and set_edge_u().
Definition at line 289 of file ip_graph.h.
Referenced by add_edge(), build_graph(), build_graph_u(), delete_edge(), and Depth_First_Ordering().
Definition at line 291 of file ip_graph.h.
Referenced by add_edge(), build_graph(), build_graph_u(), delete_edge(), and grow_edge().
Definition at line 290 of file ip_graph.h.
Referenced by build_graph_u(), grow_edge(), is_edge(), reverse_graph(), and Reverse_Graph().
Definition at line 293 of file ip_graph.h.
Referenced by add_edge(), add_vertex(), build_graph(), build_graph_u(), grow_edge(), and grow_vertex().
Definition at line 292 of file ip_graph.h.
Referenced by build_call_graph(), build_graph(), build_graph_u(), ORDERED_NODE_ITER::BuildVector(), DFBASE::Connect_graph(), IPA_CALL_GRAPH::Create_Quasi_Clone(), Depth_First_Ordering(), DFBASE::Restore_graph(), DFBASE::Reverse_graph(), CG_BROWSER::Root(), and daVinci::Translate_Call_Graph().
Definition at line 294 of file ip_graph.h.
Referenced by build_graph_u(), create_vertex_iter(), and grow_vertex().
Definition at line 295 of file ip_graph.h.
Referenced by add_edge(), add_vertex(), build_graph_u(), ORDERED_NODE_ITER::Build_Level_Order(), ORDERED_NODE_ITER::BuildVector(), Connect_call_graph(), IPA_DATA_FLOW::dataflow(), delete_edge(), delete_vertex(), edge_count(), Extract_Solution(), get_edge(), get_vertex(), get_vertex_level(), grow_vertex(), IPA_DATA_FLOW::Init(), Initialize_Annotation(), is_vertex(), IPA_DATA_FLOW::iterative_solver(), Iterative_Solver_Core(), IPAA_DF_SOLVER::Meet(), num_preds(), num_succs(), pre_process_graph(), IPA_DATA_FLOW::Print(), reverse_graph(), Reverse_Graph(), and set_vertex_level().
Definition at line 286 of file ip_graph.h.
Referenced by add_vertex(), build_graph(), build_graph_u(), Build_Transformation_Order(), Connect_call_graph(), DFBASE::Connect_graph(), delete_vertex(), Depth_First_Ordering(), and Perform_Interprocedural_Analysis().
Definition at line 288 of file ip_graph.h.
Referenced by add_vertex(), build_graph(), build_graph_u(), delete_vertex(), and grow_vertex().
Definition at line 287 of file ip_graph.h.
Referenced by build_graph_u(), ORDERED_NODE_ITER::Build_Level_Order(), Build_Transformation_Order(), ORDERED_NODE_ITER::BuildVector(), Connect_call_graph(), DFBASE::Connect_graph(), IPA_DATA_FLOW::dataflow(), Depth_First_Ordering(), Eliminate_Dead_Func(), CG_BROWSER::Find(), CG_BROWSER::Find_Vertex(), grow_vertex(), Initialize_Annotation(), is_vertex(), next_vertex(), pre_process_graph(), reverse_graph(), Reverse_Graph(), CG_BROWSER::Set_Vertex(), and daVinci::Translate_Call_Graph().
| #define INVALID_EDGE_INDEX -1 |
Definition at line 88 of file ip_graph.h.
Referenced by GRAPH::Add_Node(), GRAPH::Delete_Node(), NODE_ITER::First_Pred(), NODE_ITER::First_Succ(), GRAPH::Grow_Edge_Array(), and Reverse_Graph().
| #define INVALID_NODE_INDEX -1 |
Definition at line 87 of file ip_graph.h.
Referenced by Add_Edges_For_Node(), Add_nodes(), Add_One_Node(), Backward_Visit(), GRAPH::Build(), CG_BROWSER::Callees(), CG_BROWSER::Callers(), Connect_call_graph(), DFBASE::Connect_graph(), Connect_indirect_call(), GRAPH::Delete_Edge(), Depth_First_Ordering(), DFBASE::DFBASE(), CG_BROWSER::Find_Vertex(), NODE_ITER::First_Pred(), NODE_ITER::First_Succ(), Forward_Visit(), CG_BROWSER::Graph(), GRAPH::Grow_Node_Array(), Inliner_Write_PUs(), IPA_SUCC_ITER::Is_Empty(), IPA_PRED_ITER::Is_Empty(), GRAPH::Is_Node(), Main_Entry(), Mark_Deletable_Funcs(), NODE_ITER::Next_Pred(), NODE_ITER::Next_Succ(), Print_Array_Sections(), DFBASE::Restore_graph(), CG_BROWSER::Root(), Search(), CG_BROWSER::Set_Node(), IPA_CALL_GRAPH::Update_Node_After_Preopt(), and DFBASE::~DFBASE().
Definition at line 119 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), GRAPH::Add_Node(), GRAPH::Build(), ORDERED_NODE_ITER::Build_Level_Order(), ORDERED_NODE_ITER::BuildVector(), Connect_call_graph(), GRAPH::Delete_Edge(), GRAPH::Delete_Node(), GRAPH::Grow_Node_Array(), GRAPH::Is_Node(), GRAPH::Num_Succs(), pre_process_graph(), reverse_graph(), and Reverse_Graph().
Definition at line 117 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), GRAPH::Add_Node(), GRAPH::Build(), GRAPH::Delete_Edge(), GRAPH::Delete_Node(), GRAPH::Grow_Node_Array(), reverse_graph(), and Reverse_Graph().
Definition at line 121 of file ip_graph.h.
Referenced by GRAPH::Add_Node(), GRAPH::Node_Level(), and GRAPH::Set_Node_Level().
Definition at line 120 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), GRAPH::Add_Node(), GRAPH::Delete_Edge(), and GRAPH::Num_Preds().
Definition at line 118 of file ip_graph.h.
Referenced by GRAPH::Add_Edge(), GRAPH::Add_Node(), GRAPH::Delete_Edge(), GRAPH::Delete_Node(), reverse_graph(), and Reverse_Graph().
Definition at line 116 of file ip_graph.h.
Referenced by GRAPH::Add_Node(), IPA_DATA_FLOW::dataflow(), GRAPH::Delete_Node(), Extract_Solution(), IPA_DATA_FLOW::Init(), Initialize_Annotation(), IPA_DATA_FLOW::iterative_solver(), Iterative_Solver_Core(), IPAA_DF_SOLVER::Meet(), GRAPH_TEMPLATE< NODE_USER, EDGE_USER >::Node_User(), and IPA_DATA_FLOW::Print().
| typedef mINT32 EDGE_INDEX |
Definition at line 86 of file ip_graph.h.
| typedef mINT32 NODE_INDEX |
Definition at line 85 of file ip_graph.h.
Definition at line 514 of file ip_graph.cxx.
Definition at line 598 of file ip_graph.cxx.
Definition at line 571 of file ip_graph.cxx.
References DFN_end, DFN_first, DFN_v_list_i, fprintf(), i, and SBar.
Referenced by build_call_graph(), and Iterative_Solver_Core().
1.5.6