osprey/be/cg/region/region.h File Reference

#include "bb.h"
#include "hb_tail_duplication.h"
#include <stack>
#include <vector>
#include <list>
#include <queue>
#include "defs.h"
#include "cxx_memory.h"
#include "timing.h"

Include dependency graph for region.h:

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

Go to the source code of this file.

Data Types

type  GLOBAL_CYCLE
type  RGN_SIZE
type  RGN_FORM_PAR
type  EDGE_PROF< POINT >
type  TEMP_RGN
module  REGIONAL_CFG_EDGE
module  REGIONAL_CFG_NODE
union  REGIONAL_CFG_NODE::source_node
module  REGIONAL_CFG_MEM
module  REGIONAL_CFG
module  CFG_SUCC_NODE_ITER
module  CFG_PRED_NODE_ITER
module  CFG_PRED_EDGE_ITER
module  CFG_SUCC_EDGE_ITER
module  TOPOLOGICAL_REGIONAL_CFG_ITER_MEM
module  TOPOLOGICAL_REGIONAL_CFG_ITER
module  REVERSE_TOPO_REGIONAL_CFG_ITER
module  PREORDER_REGIONAL_CFG_ITER
module  SEQ_REGIONAL_CFG_ITER
module  REGION
module  MEME_REGION
module  SEME_REGION
module  LOOP_REGION
module  IMPROPER_REGION
module  REGION_TREE_MEM
module  REGION_TREE
module  REGION_KID_ITER
module  INNERMOST_REGION_FIRST_ITER

Typedefs

typedef EDGE_PROF
< REGIONAL_CFG_NODE * > 
NODE_PROF
typedef mempool_allocator
< NODE_PROF
PROF_ALLOC
typedef std::vector< NODE_PROF,
PROF_ALLOC
NODE_PROF_VECTOR
typedef NODE_PROF_VECTOR::iterator NODE_PROF_VECTOR_ITER
typedef mempool_allocator
< GLOBAL_CYCLE
GLOBAL_CYCLE_ALLOC
typedef std::vector
< GLOBAL_CYCLE,
GLOBAL_CYCLE_ALLOC
GLOBAL_CYCLE_VECTOR
typedef
GLOBAL_CYCLE_VECTOR::iterator 
GLOBAL_CYCLE_VECTOR_ITER
typedef mempool_allocator< INTINT_ALLOC
typedef std::vector< INT,
INT_ALLOC
INT_VECTOR
typedef mempool_allocator
< REGIONAL_CFG_NODE * > 
NODE_ALLOC
typedef std::vector
< REGIONAL_CFG_NODE
*, NODE_ALLOC
NODE_VECTOR
typedef mempool_allocator
< REGION * > 
REGION_ALLOC
typedef std::vector< REGION
*, REGION_ALLOC
REGION_VECTOR
typedef REGION_VECTOR::iterator REGION_VECTOR_ITER
typedef
REGION_VECTOR::const_iterator 
RGN_VECTOR_CONST_ITER
typedef mempool_allocator< BB * > BB_ALLOC
typedef std::vector< BB
*, BB_ALLOC
BB_VECTOR
typedef BB_VECTOR::iterator BB_VECTOR_ITER
typedef BB_VECTOR::const_iterator BB_VECTOR_CONST_ITER
typedef mempool_allocator
< REGIONAL_CFG_EDGE * > 
EDGE_ALLOC
typedef std::vector
< REGIONAL_CFG_EDGE
*, EDGE_ALLOC
EDGE_VECTOR
typedef EDGE_VECTOR::iterator EDGE_VECTOR_ITER
typedef NODE_VECTOR::iterator NODE_VECTOR_ITER
typedef std::stack
< REGIONAL_CFG_NODE
*, NODE_VECTOR
NODE_STACK
typedef std::stack
< REGIONAL_CFG_EDGE
*, EDGE_VECTOR
EDGE_STACK

Enumerations

enum  REGION_TYPE {
  UNKNOWN = 0x00, ROOT = 0x01, MEME = 0x02, SEME = 0x04,
  IMPROPER = 0x08, LOOP = 0x10, UNKNOWN = 0x00, ROOT = 0x01,
  MEME = 0x02, SEME = 0x04, IMPROPER = 0x08, LOOP = 0x10
}
enum  REGION_ATTRIBUTE {
  NONE = 0x00, NO_FURTHER_OPTIMIZATION = 0x01, RIGID = 0x02, PERSISTENT_BOUNDARY = 0x04,
  NO_OPTIMIZAION_ACROSS_BOUNDARY = 0x08, NONE = 0x00, NO_FURTHER_OPTIMIZATION = 0x01, RIGID = 0x02,
  PERSISTENT_BOUNDARY = 0x04, NO_OPTIMIZAION_ACROSS_BOUNDARY = 0x08
}

Functions/Subroutines

BBCopy_BB_For_Tail_Duplication (HB *hb, BB *old_bb)
void Create_BB_Node_Map (void)
void Delete_BB_Node_Map (void)
NODE_VECTOR_ITER Find_In_Vector (REGIONAL_CFG_NODE *node, NODE_VECTOR &nodes)
BB_VECTOR_ITER Find_In_BB_Vector (BB *bb, BB_VECTOR &bbs)
void Print_Node_Vector (NODE_VECTOR nodes)
void Print_Ops_In_BB (BB *bb)
void Print_BB_Vector (BB_VECTOR bbs)
void Initialize_Temp_Rgn (TEMP_RGN &temp_rgn, MEM_POOL _m)
REGION_TREEREGION_Form_Region_Tree (void)
REGION_TREEREGION_Get_Region_Tree (void)
BOOL Is_Abnormal_Loop (REGION *region)

Variables

BB_MAP bb_node_map
GLOBAL_CYCLE_VECTOR global_cycles


Typedef Documentation

Definition at line 138 of file region.h.

typedef std::vector<BB*,BB_ALLOC> BB_VECTOR

Definition at line 139 of file region.h.

typedef BB_VECTOR::const_iterator BB_VECTOR_CONST_ITER

Definition at line 141 of file region.h.

typedef BB_VECTOR::iterator BB_VECTOR_ITER

Definition at line 140 of file region.h.

Definition at line 142 of file region.h.

Definition at line 147 of file region.h.

typedef std::vector<REGIONAL_CFG_EDGE*,EDGE_ALLOC> EDGE_VECTOR

Definition at line 143 of file region.h.

typedef EDGE_VECTOR::iterator EDGE_VECTOR_ITER

Definition at line 144 of file region.h.

Definition at line 122 of file region.h.

Definition at line 123 of file region.h.

typedef GLOBAL_CYCLE_VECTOR::iterator GLOBAL_CYCLE_VECTOR_ITER

Definition at line 124 of file region.h.

Definition at line 128 of file region.h.

typedef std::vector<INT,INT_ALLOC> INT_VECTOR

Definition at line 129 of file region.h.

Definition at line 130 of file region.h.

Definition at line 114 of file region.h.

typedef std::vector<NODE_PROF,PROF_ALLOC> NODE_PROF_VECTOR

Definition at line 116 of file region.h.

typedef NODE_PROF_VECTOR::iterator NODE_PROF_VECTOR_ITER

Definition at line 117 of file region.h.

Definition at line 146 of file region.h.

typedef std::vector<REGIONAL_CFG_NODE*,NODE_ALLOC> NODE_VECTOR

Definition at line 131 of file region.h.

typedef NODE_VECTOR::iterator NODE_VECTOR_ITER

Definition at line 145 of file region.h.

Definition at line 115 of file region.h.

Definition at line 133 of file region.h.

typedef std::vector<REGION*,REGION_ALLOC> REGION_VECTOR

Definition at line 134 of file region.h.

typedef REGION_VECTOR::iterator REGION_VECTOR_ITER

Definition at line 135 of file region.h.

typedef REGION_VECTOR::const_iterator RGN_VECTOR_CONST_ITER

Definition at line 136 of file region.h.


Enumeration Type Documentation

Enumerator:
NONE 
NO_FURTHER_OPTIMIZATION 
RIGID 
PERSISTENT_BOUNDARY 
NO_OPTIMIZAION_ACROSS_BOUNDARY 
NONE 
NO_FURTHER_OPTIMIZATION 
RIGID 
PERSISTENT_BOUNDARY 
NO_OPTIMIZAION_ACROSS_BOUNDARY 

Definition at line 183 of file region.h.

Enumerator:
UNKNOWN 
ROOT 
MEME 
SEME 
IMPROPER 
LOOP 
UNKNOWN 
ROOT 
MEME 
SEME 
IMPROPER 
LOOP 

Definition at line 159 of file region.h.


Function Documentation

BB* Copy_BB_For_Tail_Duplication ( HB hb,
BB old_bb 
)

void Create_BB_Node_Map ( void   ) 

Definition at line 69 of file region.cxx.

References BB_MAP_Create.

Referenced by REGION_TREE::REGION_TREE().

void Delete_BB_Node_Map ( void   ) 

Definition at line 73 of file region.cxx.

References BB_MAP_Delete().

Referenced by REGION_TREE::~REGION_TREE().

BB_VECTOR_ITER Find_In_BB_Vector ( BB bb,
BB_VECTOR bbs 
) [inline]

NODE_VECTOR_ITER Find_In_Vector ( REGIONAL_CFG_NODE node,
NODE_VECTOR nodes 
)

void Initialize_Temp_Rgn ( TEMP_RGN temp_rgn,
MEM_POOL  _m 
) [inline]

BOOL Is_Abnormal_Loop ( REGION region  ) 

void Print_BB_Vector ( BB_VECTOR  bbs  )  [inline]

Definition at line 4626 of file region.cxx.

References BB_id, fprintf(), iter, and TFile.

Referenced by REGIONAL_CFG::Tail_Duplicate().

void Print_Node_Vector ( NODE_VECTOR  nodes  )  [inline]

void Print_Ops_In_BB ( BB bb  )  [inline]

Definition at line 4618 of file region.cxx.

References ops::first, op::next, NULL, op::opr, bb::ops, printf(), and TOP.

Referenced by REGIONAL_CFG::Duplicate().

REGION_TREE* REGION_Form_Region_Tree ( void   ) 

REGION_TREE* REGION_Get_Region_Tree ( void   ) 

Definition at line 4775 of file region.cxx.

References Current_PU_Count().

Referenced by Perform_Global_Schedule().


Variable Documentation

Definition at line 63 of file region.cxx.

Referenced by Home_Region(), and Regional_Cfg_Node().


Generated on Wed Apr 8 14:28:43 2009 for Open64 by  doxygen 1.5.6