REGION Module Reference

#include <region.h>

Inheritance diagram for REGION:

Inheritance graph
[legend]
Collaboration diagram for REGION:

Collaboration graph
[legend]

Public Member Functions

 REGION ()
 REGION (REGIONAL_CFG *cfg)
 ~REGION ()
REGION_TYPE Region_Type ()
void Region_Type (REGION_TYPE type)
REGIONAL_CFGRegional_Cfg (void)
REGIONFirst_Kid (void)
REGIONNext_Sibling (void)
REGIONPrev_Sibling (void)
REGIONParent (void)
REGION_TREETree (void)
INT32 N_Kids (void)
INT32 Level (void)
INT32 Id (void)
INT16 Attribute (void)
void Id (INT32 id)
NODE_VECTOR Exits (void)
NODE_VECTOR Entries (void)
BOOL Is_Rigid (void)
BOOL Is_No_Further_Opt (void)
BOOL Is_Persist_Bound (void)
BOOL Is_No_Opt_Across (void)
REGIONAL_CFG_NODERegional_Cfg_Node (void)
void Regional_Cfg_Node (REGIONAL_CFG_NODE *node)
void Add_Kid (REGION *r)
void Del_Kid (REGION *r)
REGIONFind_Common_Parent (REGION *r)
BOOL Is_Contained_By (REGION *r)
BOOL Is_Kid_Region_Of (REGION *r)
BOOL Is_Parent_Region_Of (REGION *r)
void Edge_Splitting (void)
void Print (FILE *f=stderr)
 REGION ()
 REGION (REGIONAL_CFG *cfg)
 ~REGION ()
REGION_TYPE Region_Type ()
void Region_Type (REGION_TYPE type)
REGIONAL_CFGRegional_Cfg (void)
REGIONFirst_Kid (void)
REGIONNext_Sibling (void)
REGIONPrev_Sibling (void)
REGIONParent (void)
REGION_TREETree (void)
INT32 N_Kids (void)
INT32 Level (void)
INT32 Id (void)
INT16 Attribute (void)
void Id (INT32 id)
NODE_VECTOR Exits (void)
NODE_VECTOR Entries (void)
BOOL Is_Rigid (void)
BOOL Is_No_Further_Opt (void)
BOOL Is_Persist_Bound (void)
BOOL Is_No_Opt_Across (void)
REGIONAL_CFG_NODERegional_Cfg_Node (void)
void Regional_Cfg_Node (REGIONAL_CFG_NODE *node)
void Add_Kid (REGION *r)
void Del_Kid (REGION *r)
REGIONFind_Common_Parent (REGION *r)
BOOL Is_Contained_By (REGION *r)
BOOL Is_Kid_Region_Of (REGION *r)
BOOL Is_Parent_Region_Of (REGION *r)
void Edge_Splitting (void)
void Print (FILE *f=stderr)
 REGION (WN *wn, ARA_LOOP_INFO *ara_loop_info)
 REGION (WN *wn, ACCESS_ARRAY *array)
 REGION (const REGION &a)
 REGION (REGION *r)
 REGION (const INT depth, const INT dim)
 ~REGION ()
BOOL Has_Formal_Parameter ()
INT16 Num_Dim ()
AXLE_NODEDim (INT32 i)
void Set_Too_Messy ()
const KERNEL_IMAGEKernel ()
BOOL Is_Too_Messy () const
BOOL Is_Empty () const
BOOL Is_All () const
BOOL Is_Included (const REGION &a, const ARA_LOOP_INFO &ara_info)
BOOL Is_Coupled () const
BOOL Contains (WN *array_wn)
BOOL Is_Loop_Invariant (WN *loop)
REGIONRegion_Projection (const INT pos, const ARA_LOOP_INFO &ara_info)
void Set_Region (const SYSTEM_OF_EQUATIONS *soe, const SYMBOL_LIST *syms, const INT_ST &non_const_loops, const INT strides[])
void Set_Region (const SYSTEM_OF_EQUATIONS *soe, const SYMBOL_LIST *syms, const INT_ST &non_const_loops, INT strides[], const INT pivot_row, const INT pos, const INT step, const INT projected_axle)
void Print (FILE *fp) const
void WB_Print (FILE *fp) const
INT WB_Print (char *bf, INT ccount) const
void Print_Analysis_Info (FILE *fp, INT indent, DOLOOP_STACK &do_stack)

Data Fields

INT32 _dim
AXLE_NODE_axle
mUINT16 _depth
ARA_REGION_TYPE _type
BOOL _coupled
ACCESS_ARRAY_conditions
KERNEL_IMAGE_kernel
STACK< WN * > _wn_list

Protected Member Functions

void Attribute (REGION_ATTRIBUTE attr, BOOL set=1)
void Attribute (REGION_ATTRIBUTE attr, BOOL set=1)

Protected Attributes

REGIONAL_CFG _cfg
REGION_first_kid
REGION_parent
REGION_next_sibling
REGION_prev_sibling
REGION_TREE_tree
INT32 _level
INT32 _n_kids
INT32 _id
REGION_TYPE _type
INT16 _attribute
REGIONAL_CFG_NODE_node

Private Member Functions

BBEdge_Splitting (BB *from_bb, BB *to_bb)
BBEdge_Splitting (BB *from_bb, BB *to_bb)

Friends

class REGION_TREE
class REGION_LOOP_UPDATE
class SCHEDULER
REGIONRegion_Intersect (const REGION &a, const REGION &b, const ARA_LOOP_INFO &ara_info)
REGIONRegion_Union (const REGION &a, const REGION &b, const ARA_LOOP_INFO &ara_info)
INT Region_Compare (const REGION &a, const REGION &b, const ARA_LOOP_INFO &ara_info)
void Add_To_SOE (const REGION &a, const INT pos, SYSTEM_OF_EQUATIONS *soe, SYMBOL_LIST *syms, INT_ST &non_const_loops, const BOOL convert_equation, const ARA_LOOP_INFO &ara_info)

Detailed Description

Definition at line 1325 of file region.h.


Constructor & Destructor Documentation

REGION::REGION (  )  [inline]

REGION::REGION ( REGIONAL_CFG cfg  ) 

REGION::~REGION (  )  [inline]

Definition at line 1375 of file region.h.

REGION::REGION (  )  [inline]

REGION::REGION ( REGIONAL_CFG cfg  ) 

REGION::~REGION (  )  [inline]

Definition at line 1382 of file region.h.

REGION::REGION ( WN wn,
ARA_LOOP_INFO ara_loop_info 
)

REGION::REGION ( WN wn,
ACCESS_ARRAY array 
)

REGION::REGION ( const REGION a  ) 

REGION::REGION ( REGION r  ) 

REGION::REGION ( const INT  depth,
const INT  dim 
) [inline]

Definition at line 308 of file ara_region.h.

References _axle, _conditions, _depth, _dim, _kernel, _type, ARA_TOO_MESSY, and NULL.

REGION::~REGION (  )  [inline]

Definition at line 320 of file ara_region.h.

References _axle, _conditions, CXX_DELETE, CXX_DELETE_ARRAY, and NULL.


Member Function/Subroutine Documentation

BB * REGION::Edge_Splitting ( BB from_bb,
BB to_bb 
) [private]

void REGION::Attribute ( REGION_ATTRIBUTE  attr,
BOOL  set = 1 
) [inline, protected]

REGION_TYPE REGION::Region_Type (  )  [inline]

void REGION::Region_Type ( REGION_TYPE  type  )  [inline]

Definition at line 1378 of file region.h.

References _type.

REGIONAL_CFG* REGION::Regional_Cfg ( void   )  [inline]

Definition at line 1382 of file region.h.

References _cfg.

Referenced by RGN_CFLOW_MGR::_acquire_basic_cflow_info(), RGN_CFLOW_MGR::_acquire_cflow_info(), RGN_CFLOW_MGR::_acquire_reachable_info(), RGN_CFLOW_MGR::_compute_node_level(), EXEC_PATH_MGR::Acquire_Path_Info(), REGION_TREE::Add_Loop_Region(), Add_Regional_Cfg_Edge(), FAVOR_DELAY_HEUR::Adjust_Delay(), FAVOR_DELAY_HEUR::Alloc_Heur_Data(), DAG_BUILDER::Build_DAG(), REGION_TREE::Build_Regional_Cfg(), REGION_INFO_MGR::Build_Rgn_Summary(), EXEC_PATH_MGR::Calc_Subgraph_Path_Num(), CGGRP_Init(), Collect_Entry_BBs(), Collect_Exit_BBs(), REGIONAL_CFG::Compute_BBs_In_Region_Node(), FAVOR_DELAY_HEUR::Compute_Delay(), INTERVAL_PROCESSOR::Compute_Dominators(), FAVOR_DELAY_HEUR::Compute_FanOut_For_All_OP(), FAVOR_DELAY_HEUR::Compute_Heur_Data_For_Inserted_OP(), REGION_STRIDE_PREFETCH::Compute_Region_Cycles(), REGION_STRIDE_PREFETCH::Compute_Region_Data_Size(), INTERVAL_PROCESSOR::Construct_Loops(), RGN_CFLOW_MGR::Critical_Edge_Present(), REGION_TREE::Decompose_Region_To_MEME(), REGION_TREE::Decompose_Region_To_SEME(), REGIONAL_CFG::Del_Node(), REGION_TREE::Del_Region(), Del_Regional_Cfg_Edge(), INTERVAL_PROCESSOR::Detect_Loop_Scope(), SCHED_ANNOT::Dump(), RGN_CFLOW_MGR::Dump(), SCHEDULER::Dump_DAG(), INTERVAL_PROCESSOR::Find_Cycles(), Find_Regional_Cfg_Edge(), SCHEDULER::Identify_Cannot_Spec_OPs(), SCHED_ANNOT::Init(), DATA_SPEC_RES_CONSTRAIT_MGR::Init(), CFG_NODE_MAP::Initialize_Map(), REGION_STRIDE_PREFETCH::Insert_Prefetch_List(), EDGE_PROFILE::Instrument_Cloop_Branch(), EDGE_PROFILE::Instrument_Entry(), EDGE_PROFILE::Instrument_Indirect_Cond_Branch(), EDGE_PROFILE::Instrument_Ip_Rel_Branch(), EDGE_PROFILE::Instrument_None_and_Other_Xfer(), EDGE_PROFILE::Instrument_Top_Branch(), PARTITION_GRAPH::Look_For_Partition(), INTERVAL_PROCESSOR::Process(), REGION_LOOP_UPDATE::Rebuild_Loop_Region(), REGION_LOOP_UPDATE::Record_Loop_Region_Boundary(), RGN_Add_Regional_Cfg_Edge(), RGN_Del_Regional_Cfg_Edge(), RGN_Gen_And_Insert_BB_After(), RGN_Gen_And_Insert_BB_Before(), RGN_Gen_And_Insert_Node(), RGN_Remove_BB_And_Edges(), RGN_Unlink_BB_Edges(), SCHEDULER::Sched_Rgn_Preproc(), SCHEDULER::SCHEDULER(), REGION_TREE::Set_Loop_Head_Tail(), REGION_LOOP_UPDATE::Set_No_Further_Optimization(), DAG_BUILDER::Set_TN_BB_Bitset_Table(), REGION_TREE::Shrink(), Split_PU_Entry_BB(), Split_PU_Exit_BB(), REGION_TREE::Statistic(), Target_Simple_Fall_Through_BB(), Test_PRDB(), TOPDOWN_SCHED_SEQ::TOPDOWN_SCHED_SEQ(), Verify_Node(), Verify_Region_Tree(), Verify_SEME_Region(), and Workaround_Dom_Info_For_In_Abnormal_Loop_Rgn().

REGION* REGION::First_Kid ( void   )  [inline]

REGION* REGION::Next_Sibling ( void   )  [inline]

REGION* REGION::Prev_Sibling ( void   )  [inline]

Definition at line 1386 of file region.h.

References _prev_sibling.

REGION* REGION::Parent ( void   )  [inline]

REGION_TREE* REGION::Tree ( void   )  [inline]

INT32 REGION::N_Kids ( void   )  [inline]

Definition at line 1389 of file region.h.

References _n_kids.

INT32 REGION::Level ( void   )  [inline]

Definition at line 1390 of file region.h.

References _level.

INT32 REGION::Id ( void   )  [inline]

INT16 REGION::Attribute ( void   )  [inline]

Definition at line 1392 of file region.h.

References _attribute.

void REGION::Id ( INT32  id  )  [inline]

Definition at line 1393 of file region.h.

References _id.

NODE_VECTOR REGION::Exits ( void   )  [inline]

NODE_VECTOR REGION::Entries ( void   )  [inline]

BOOL REGION::Is_Rigid ( void   )  [inline]

Definition at line 1398 of file region.h.

References _attribute, and RIGID.

BOOL REGION::Is_No_Further_Opt ( void   )  [inline]

BOOL REGION::Is_Persist_Bound ( void   )  [inline]

Definition at line 1400 of file region.h.

References _attribute, and PERSISTENT_BOUNDARY.

BOOL REGION::Is_No_Opt_Across ( void   )  [inline]

Definition at line 1401 of file region.h.

References _attribute, and NO_OPTIMIZAION_ACROSS_BOUNDARY.

Referenced by Can_Be_Moved(), and Have_No_Across_Opt_In_Path().

REGIONAL_CFG_NODE* REGION::Regional_Cfg_Node ( void   )  [inline]

void REGION::Regional_Cfg_Node ( REGIONAL_CFG_NODE node  )  [inline]

Definition at line 1404 of file region.h.

References _node.

void REGION::Add_Kid ( REGION r  )  [inline]

void REGION::Del_Kid ( REGION r  )  [inline]

Definition at line 1439 of file region.h.

References _first_kid, _n_kids, _next_sibling, _parent, _prev_sibling, and NULL.

Referenced by REGION_TREE::Del_Region(), and REGION_TREE::Shrink().

REGION * REGION::Find_Common_Parent ( REGION r  ) 

BOOL REGION::Is_Contained_By ( REGION r  ) 

BOOL REGION::Is_Kid_Region_Of ( REGION r  ) 

Definition at line 3444 of file region.cxx.

References FALSE, iter, and TRUE.

Referenced by Verify_Region_Tree().

BOOL REGION::Is_Parent_Region_Of ( REGION r  ) 

void REGION::Edge_Splitting ( void   ) 

void REGION::Print ( FILE f = stderr  ) 

BB* REGION::Edge_Splitting ( BB from_bb,
BB to_bb 
) [private]

void REGION::Attribute ( REGION_ATTRIBUTE  attr,
BOOL  set = 1 
) [inline, protected]

Definition at line 1359 of file region.h.

References _attribute.

REGION_TYPE REGION::Region_Type (  )  [inline]

Definition at line 1384 of file region.h.

References _type.

void REGION::Region_Type ( REGION_TYPE  type  )  [inline]

Definition at line 1385 of file region.h.

References _type.

REGIONAL_CFG* REGION::Regional_Cfg ( void   )  [inline]

Definition at line 1389 of file region.h.

References _cfg.

REGION* REGION::First_Kid ( void   )  [inline]

Definition at line 1391 of file region.h.

References _first_kid.

REGION* REGION::Next_Sibling ( void   )  [inline]

Definition at line 1392 of file region.h.

References _next_sibling.

REGION* REGION::Prev_Sibling ( void   )  [inline]

Definition at line 1393 of file region.h.

References _prev_sibling.

REGION* REGION::Parent ( void   )  [inline]

Definition at line 1394 of file region.h.

References _parent.

REGION_TREE* REGION::Tree ( void   )  [inline]

Definition at line 1395 of file region.h.

References _tree.

INT32 REGION::N_Kids ( void   )  [inline]

Definition at line 1396 of file region.h.

References _n_kids.

INT32 REGION::Level ( void   )  [inline]

Definition at line 1397 of file region.h.

References _level.

INT32 REGION::Id ( void   )  [inline]

Definition at line 1398 of file region.h.

References _id.

INT16 REGION::Attribute ( void   )  [inline]

Definition at line 1399 of file region.h.

References _attribute.

void REGION::Id ( INT32  id  )  [inline]

Definition at line 1400 of file region.h.

References _id.

NODE_VECTOR REGION::Exits ( void   )  [inline]

Definition at line 1402 of file region.h.

References _cfg, and REGIONAL_CFG::_exits.

NODE_VECTOR REGION::Entries ( void   )  [inline]

Definition at line 1403 of file region.h.

References _cfg, and REGIONAL_CFG::_entries.

BOOL REGION::Is_Rigid ( void   )  [inline]

Definition at line 1405 of file region.h.

References _attribute, and RIGID.

BOOL REGION::Is_No_Further_Opt ( void   )  [inline]

Definition at line 1406 of file region.h.

References _attribute, and NO_FURTHER_OPTIMIZATION.

BOOL REGION::Is_Persist_Bound ( void   )  [inline]

Definition at line 1407 of file region.h.

References _attribute, and PERSISTENT_BOUNDARY.

BOOL REGION::Is_No_Opt_Across ( void   )  [inline]

Definition at line 1408 of file region.h.

References _attribute, and NO_OPTIMIZAION_ACROSS_BOUNDARY.

REGIONAL_CFG_NODE* REGION::Regional_Cfg_Node ( void   )  [inline]

Definition at line 1410 of file region.h.

References _node.

void REGION::Regional_Cfg_Node ( REGIONAL_CFG_NODE node  )  [inline]

Definition at line 1411 of file region.h.

References _node.

void REGION::Add_Kid ( REGION r  )  [inline]

Definition at line 1423 of file region.h.

References _first_kid, _n_kids, _next_sibling, _parent, _prev_sibling, and NULL.

void REGION::Del_Kid ( REGION r  )  [inline]

Definition at line 1446 of file region.h.

References _first_kid, _n_kids, _next_sibling, _parent, _prev_sibling, and NULL.

REGION* REGION::Find_Common_Parent ( REGION r  ) 

BOOL REGION::Is_Contained_By ( REGION r  ) 

BOOL REGION::Is_Kid_Region_Of ( REGION r  ) 

BOOL REGION::Is_Parent_Region_Of ( REGION r  ) 

void REGION::Edge_Splitting ( void   ) 

void REGION::Print ( FILE f = stderr  ) 

BOOL REGION::Has_Formal_Parameter (  ) 

Definition at line 374 of file ara_region.cxx.

References _axle, _dim, FALSE, i, INT, and TRUE.

INT16 REGION::Num_Dim (  )  [inline]

AXLE_NODE& REGION::Dim ( INT32  i  )  [inline]

void REGION::Set_Too_Messy (  )  [inline]

Definition at line 330 of file ara_region.h.

References _type, and ARA_TOO_MESSY.

Referenced by KERNEL_IMAGE::Project(), Region_Projection(), and Set_Region().

const KERNEL_IMAGE* REGION::Kernel (  )  [inline]

Definition at line 331 of file ara_region.h.

References _kernel.

BOOL REGION::Is_Too_Messy (  )  const [inline]

Definition at line 332 of file ara_region.h.

References _type, and ARA_TOO_MESSY.

Referenced by ARA_REF::ARA_REF(), and Region_Projection().

BOOL REGION::Is_Empty ( void   )  const [inline]

Definition at line 333 of file ara_region.h.

References _type, and ARA_BOTTOM.

BOOL REGION::Is_All (  )  const [inline]

Definition at line 334 of file ara_region.h.

References _type, and ARA_TOP.

BOOL REGION::Is_Included ( const REGION a,
const ARA_LOOP_INFO ara_info 
)

Definition at line 1560 of file ara_region.cxx.

References INT, and Region_Compare.

BOOL REGION::Is_Coupled (  )  const [inline]

Definition at line 336 of file ara_region.h.

References _coupled.

BOOL REGION::Contains ( WN array_wn  ) 

Definition at line 1567 of file ara_region.cxx.

References _wn_list, STACK< T >::Bottom_nth(), cur, STACK< T >::Elements(), FALSE, i, INT, and TRUE.

BOOL REGION::Is_Loop_Invariant ( WN loop  ) 

REGION & REGION::Region_Projection ( const INT  pos,
const ARA_LOOP_INFO ara_info 
)

void REGION::Set_Region ( const SYSTEM_OF_EQUATIONS soe,
const SYMBOL_LIST syms,
const INT_ST non_const_loops,
const INT  strides[] 
)

void REGION::Set_Region ( const SYSTEM_OF_EQUATIONS soe,
const SYMBOL_LIST syms,
const INT_ST non_const_loops,
INT  strides[],
const INT  pivot_row,
const INT  pos,
const INT  step,
const INT  projected_axle 
)

void REGION::Print ( FILE fp  )  const

Definition at line 242 of file ara_region.cxx.

References _axle, _dim, _type, ARA_BOTTOM, ARA_TOO_MESSY, ARA_TOP, fprintf(), i, INT, and AXLE_NODE::Print().

void REGION::WB_Print ( FILE fp  )  const

Definition at line 269 of file ara_region.cxx.

References fprintf(), and MAX_TLOG_CHARS.

Referenced by REGION_UN::WB_Print().

INT REGION::WB_Print ( char *  bf,
INT  ccount 
) const

void REGION::Print_Analysis_Info ( FILE fp,
INT  indent,
DOLOOP_STACK do_stack 
)


Friends And Related Function Documentation

REGION_TREE [friend]

Reimplemented in MEME_REGION.

Definition at line 1327 of file region.h.

Definition at line 1328 of file region.h.

friend class SCHEDULER [friend]

Definition at line 1335 of file region.h.

REGION* Region_Intersect ( const REGION a,
const REGION b,
const ARA_LOOP_INFO ara_info 
) [friend]

Definition at line 1254 of file ara_region.cxx.

REGION* Region_Union ( const REGION a,
const REGION b,
const ARA_LOOP_INFO ara_info 
) [friend]

Definition at line 1711 of file ara_region.cxx.

INT Region_Compare ( const REGION a,
const REGION b,
const ARA_LOOP_INFO ara_info 
) [friend]

Definition at line 1586 of file ara_region.cxx.

Referenced by Is_Included().

void Add_To_SOE ( const REGION a,
const INT  pos,
SYSTEM_OF_EQUATIONS soe,
SYMBOL_LIST syms,
INT_ST non_const_loops,
const BOOL  convert_equation,
const ARA_LOOP_INFO ara_info 
) [friend]

Definition at line 846 of file ara_region.cxx.

Referenced by Region_Compare(), and Region_Union().


Field Documentation

Definition at line 1334 of file region.h.

Referenced by Edge_Splitting(), Entries(), Exits(), Print(), REGION(), and Regional_Cfg().

REGION * REGION::_first_kid [protected]

Definition at line 1338 of file region.h.

Referenced by Add_Kid(), Del_Kid(), First_Kid(), and REGION().

REGION * REGION::_parent [protected]

Definition at line 1339 of file region.h.

Referenced by Add_Kid(), Del_Kid(), Parent(), Print(), and REGION().

Definition at line 1340 of file region.h.

Referenced by Add_Kid(), Del_Kid(), Next_Sibling(), and REGION().

Definition at line 1341 of file region.h.

Referenced by Add_Kid(), Del_Kid(), Prev_Sibling(), and REGION().

REGION_TREE * REGION::_tree [protected]

Definition at line 1342 of file region.h.

Referenced by REGION_TREE::Erase(), REGION_TREE::Insert(), REGION(), and Tree().

INT32 REGION::_level [protected]

Definition at line 1344 of file region.h.

Referenced by Level(), and REGION().

INT32 REGION::_n_kids [protected]

Definition at line 1345 of file region.h.

Referenced by Add_Kid(), Del_Kid(), N_Kids(), Print(), and REGION().

INT32 REGION::_id [protected]

Definition at line 1346 of file region.h.

Referenced by Id(), Print(), and REGION().

INT16 REGION::_attribute [protected]

Definition at line 1348 of file region.h.

Referenced by Attribute(), Is_No_Further_Opt(), Is_No_Opt_Across(), Is_Persist_Bound(), and Is_Rigid().

Definition at line 1350 of file region.h.

Referenced by REGION(), and Regional_Cfg_Node().

Definition at line 297 of file ara_region.h.

Definition at line 299 of file ara_region.h.

Referenced by REGION(), and ~REGION().


The documentation for this module was generated from the following files:

Generated on Wed Apr 8 17:02:37 2009 for Open64 by  doxygen 1.5.6