osprey/be/opt/opt_cfg_trans.h File Reference

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

Include dependency graph for opt_cfg_trans.h:

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

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< zonezone_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)
edgeadd_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 Documentation

#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 Documentation

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.


Function Documentation

edge& add_edge ( vector< edge > &  g,
const edge e 
) [inline]

Definition at line 537 of file opt_cfg_trans.h.

template<class Graph, class Forward_Iterator>
void add_edge ( Graph &  g,
Forward_Iterator  first,
Forward_Iterator  last 
) [inline]

Definition at line 294 of file opt_cfg_trans.h.

References add_edge().

template<class Graph, class Edge>
Edge& add_edge ( Graph &  g,
const Edge &  e 
) [inline]

template<class Cluster_iterator>
bool adjacent ( Cluster_iterator  c1,
const Cluster_iterator  c2 
) [inline]

Definition at line 77 of file opt_cfg_trans.h.

template<class Container>
container_traits<Container>::container_category container_category ( const Container &   )  [inline]

Definition at line 274 of file opt_cfg_trans.h.

References category.

Referenced by reverse_graph().

template<class Graph_in, class Graph_out>
void copy ( Graph_in &  in,
Graph_out &  out 
) [inline]

Definition at line 424 of file opt_cfg_trans.h.

References add_edge().

template<class Graph>
void erase ( Graph &  g  )  [inline]

Definition at line 432 of file opt_cfg_trans.h.

References end, and i.

Referenced by clone_zones().

template<class Graph, class Vertex>
bool erase_edge ( Graph &  g,
Vertex  from,
Vertex  to 
) [inline]

Definition at line 315 of file opt_cfg_trans.h.

template<class Graph, class Vertex>
Graph::value_type* find_edge ( Graph &  g,
Vertex  from,
Vertex  to 
) [inline]

template<class Graph, class Vertex_id>
void find_reachable_vertex_set ( Graph &  g,
Vertex_id  v,
vector< bool > &  reachable 
) [inline]

Definition at line 402 of file opt_cfg_trans.h.

References second().

Referenced by clone_zones().

vertex_id first ( edge  e  )  [inline]

Definition at line 546 of file opt_cfg_trans.h.

References edge::first.

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

template<class Graph, class Vertex_id, class Container>
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.

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 
) [inline]

Definition at line 362 of file opt_cfg_trans.h.

References second().

Referenced by generate_post_order(), and generate_reverse_post_order().

template<class Graph, class Vertex_id, class Container>
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().

template<class Graph>
void print_edges ( Graph &  g,
FILE fp = stdout 
) [inline]

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

template<class Graph>
void print_nodes ( Graph &  g,
FILE fp = stdout 
) [inline]

Definition at line 464 of file opt_cfg_trans.h.

References fp, fprintf(), INT, and n.

Referenced by CFG_transformation(), and clone_zones().

void print_path_type ( path_type ,
FILE  
)

Definition at line 1203 of file opt_cfg_trans.cxx.

References fprintf(), and i.

void print_vertex_set ( std::set< vertex_id > *  ,
FILE  
)

template<class Graph_in, class Graph_out>
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().

template<class Graph_in, class Graph_out>
void reverse_graph ( Graph_in &  in,
Graph_out &  out,
two_dimensional_container_tag   
) [inline]

Definition at line 340 of file opt_cfg_trans.h.

References add_edge(), ci, first, and second().

template<class Graph_in, class Graph_out>
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().

vertex_id second ( edge  e  )  [inline]

template<class Graph_in, class Graph_out>
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().

template<class Graph, class Vertex_id, class Container>
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().

static int unique_bb_count ( vector< edge > &  clone,
vector< edge > &  exit 
) [static]

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


Generated on Wed Apr 8 14:34:55 2009 for Open64 by  doxygen 1.5.6