osprey/ipa/common/ip_graph.h File Reference

#include "mempool.h"

Include dependency graph for ip_graph.h:

This graph shows which files directly or indirectly include this file:

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 *)
DFNDepth_First_Ordering (GRAPH *, MEM_POOL *)
void Free_DFN (DFN *, MEM_POOL *)


Define Documentation

#define DFN_end ( d   )     ((d)->end)

#define DFN_first ( d   )     ((d)->first)

#define DFN_v_list ( d   )     ((d)->v_list)

Definition at line 373 of file ip_graph.h.

Referenced by Depth_First_Ordering(), and Free_DFN().

#define DFN_v_list_i ( d,
i   )     ((d)->v_list[i])

#define EDGE_etype ( edge   )     ((edge)->etype)

Definition at line 157 of file ip_graph.h.

Referenced by GRAPH::Add_Edge(), add_edge(), and IPA_EDGE::Print().

#define EDGE_from ( edge   )     ((edge)->from)

#define EDGE_nfrom ( edge   )     ((edge)->nfrom)

#define EDGE_nto ( edge   )     ((edge)->nto)

#define EDGE_recursive ( edge   )     (EDGE_etype(edge) & EDGE_RECURSIVE)

Definition at line 162 of file ip_graph.h.

Referenced by GRAPH::Is_Recursive_Edge().

#define EDGE_RECURSIVE   1

Definition at line 160 of file ip_graph.h.

#define EDGE_to ( edge   )     ((edge)->to)

#define EDGE_user ( edge   )     ((edge)->user)

#define FOR_EACH_NODE ( g,
 ) 

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().

#define GRAPH_e ( g   )     ((g)->Edges())

Definition at line 296 of file ip_graph.h.

Referenced by build_graph_u(), and grow_edge().

#define GRAPH_e_i ( g,
index   )     ((g)->Edges()[index])

#define GRAPH_ecnt ( g   )     ((g)->ecnt)

Definition at line 289 of file ip_graph.h.

Referenced by add_edge(), build_graph(), build_graph_u(), delete_edge(), and Depth_First_Ordering().

#define GRAPH_efree ( g   )     ((g)->efree)

Definition at line 291 of file ip_graph.h.

Referenced by add_edge(), build_graph(), build_graph_u(), delete_edge(), and grow_edge().

#define GRAPH_emax ( g   )     ((g)->emax)

Definition at line 290 of file ip_graph.h.

Referenced by build_graph_u(), grow_edge(), is_edge(), reverse_graph(), and Reverse_Graph().

#define GRAPH_m ( g   )     ((g)->m)

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().

#define GRAPH_root ( g   )     ((g)->root)

#define GRAPH_v ( g   )     ((g)->Nodes())

Definition at line 294 of file ip_graph.h.

Referenced by build_graph_u(), create_vertex_iter(), and grow_vertex().

#define GRAPH_v_i ( g,
index   )     ((g)->Nodes()[index])

#define GRAPH_vcnt ( g   )     ((g)->vcnt)

#define GRAPH_vfree ( g   )     ((g)->vfree)

Definition at line 288 of file ip_graph.h.

Referenced by add_vertex(), build_graph(), build_graph_u(), delete_vertex(), and grow_vertex().

#define GRAPH_vmax ( g   )     ((g)->vmax)

#define INVALID_EDGE_INDEX   -1

#define INVALID_NODE_INDEX   -1

#define NODE_fcnt ( vertex   )     ((vertex)->fcnt)

#define NODE_from ( vertex   )     ((vertex)->from)

#define NODE_level ( vertex   )     ((vertex)->level)

Definition at line 121 of file ip_graph.h.

Referenced by GRAPH::Add_Node(), GRAPH::Node_Level(), and GRAPH::Set_Node_Level().

#define NODE_tcnt ( vertex   )     ((vertex)->tcnt)

Definition at line 120 of file ip_graph.h.

Referenced by GRAPH::Add_Edge(), GRAPH::Add_Node(), GRAPH::Delete_Edge(), and GRAPH::Num_Preds().

#define NODE_to ( vertex   )     ((vertex)->to)

#define NODE_user ( vertex   )     ((vertex)->user)

#define Set_EDGE_recursive ( edge   )     (EDGE_etype(edge) |= EDGE_RECURSIVE)

Definition at line 161 of file ip_graph.h.

Referenced by ORDERED_NODE_ITER::MarkRecursive().


Typedef Documentation

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.


Function Documentation

DFN* Depth_First_Ordering ( GRAPH ,
MEM_POOL  
)

Definition at line 514 of file ip_graph.cxx.

void Free_DFN ( DFN ,
MEM_POOL  
)

Definition at line 598 of file ip_graph.cxx.

void Print_DFN ( const FILE ,
DFN  
)

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().


Generated on Wed Apr 8 15:09:21 2009 for Open64 by  doxygen 1.5.6