osprey/be/region/region_util.h File Reference

#include "defs.h"
#include "mempool.h"
#include "opcode.h"
#include "opcode_core.h"
#include "opcode_gen_core.h"
#include "srcpos.h"
#include "wn_core.h"
#include "wn_map.h"
#include "preg_list.h"
#include "stab.h"
#include "wn_lower.h"

Include dependency graph for region_util.h:

Go to the source code of this file.

Data Types

type  region_flags_struct
union  region_flags_union
type  points_to_ref
type  region_id
type  region_cs_iter

Defines

#define POINTS_TO   void
#define RID_CREATE_NEW_ID   -1
#define URFLAG_flags(r)   ((r).flags)
#define URFLAG_clear(r)   ( (r).flags = 0 )
#define URFLAG_rfs(r)   ((r).rfs)
#define URFLAG_level(r)   ((r).rfs.level)
#define URFLAG_type(r)   ((r).rfs.type)
#define URFLAG_gra_flags(r)   ((r).rfs.gra_flags)
#define URFLAG_return_flag(r)   ((r).rfs.return_flag)
#define URFLAG_glue_code_flag(r)   ((r).rfs.glue_code_flag)
#define URFLAG_contains_black(r)   ((r).rfs.contains_black)
#define URFLAG_contains_bounds(r)   ((r).rfs.contains_bounds)
#define URFLAG_bounds_exist(r)   ((r).rfs.bounds_exist)
#define URFLAG_aliased_to_globals(r)   ((r).rfs.aliased_to_globals)
#define URFLAG_aliased_to_indirects(r)   ((r).rfs.aliased_to_indirects)
#define URFLAG_contains_uplevel(r)   ((r).rfs.contains_uplevel)
#define URFLAG_contains_barrier(r)   ((r).rfs.contains_barrier)
#define RID_id(r)   ((r)->id)
#define RID_depth(r)   ((r)->depth)
#define RID_srcpos(r)   ((r)->srcpos)
#define RID_flags(r)   ((r)->flags)
#define RID_cginfo(r)   ((r)->cginfo)
#define RID_num_exits(r)   ((r)->num_exits)
#define RID_options(r)   ((r)->options)
#define RID_rwn(r)   ((r)->rwn)
#define RID_parent(r)   ((r)->parent)
#define RID_parent_block(r)   ((r)->parent_block)
#define RID_first_kid(r)   ((r)->first_kid)
#define RID_next(r)   ((r)->next)
#define RID_rloop(r)   ((r)->rloop)
#define RID_lowered(r)   ((r)->lowered)
#define RID_eh_range_ptr(r)   ((r)->eh_range_ptr)
#define RID_type(r)   ((r)->rid_type)
#define RID_level(r)   (URFLAG_level(*((URFLAG *)(&RID_flags(r)))))
#define RID_gra_flags(r)   (URFLAG_gra_flags(*((URFLAG *)(&RID_flags(r)))))
#define RID_has_return(r)   (URFLAG_return_flag(*((URFLAG *)(&RID_flags(r)))))
#define RID_is_glue_code(r)   (URFLAG_glue_code_flag(*((URFLAG *)(&RID_flags(r)))))
#define RID_contains_black(r)   (URFLAG_contains_black(*((URFLAG *)(&RID_flags(r)))))
#define RID_contains_bounds(r)   (URFLAG_contains_bounds(*((URFLAG *)(&RID_flags(r)))))
#define RID_bounds_exist(r)   (URFLAG_bounds_exist(*((URFLAG *)(&RID_flags(r)))))
#define RID_aliased_to_globals(r)   (URFLAG_aliased_to_globals(*((URFLAG *)(&RID_flags(r)))))
#define RID_aliased_to_indirects(r)   (URFLAG_aliased_to_indirects(*((URFLAG *)(&RID_flags(r)))))
#define RID_contains_uplevel(r)   (URFLAG_contains_uplevel(*((URFLAG *)(&RID_flags(r)))))
#define RID_contains_barrier(r)   (URFLAG_contains_barrier(*((URFLAG *)(&RID_flags(r)))))
#define RID_pregs_in(r)   ((r)->pregs_in)
#define RID_pregs_quad(r)   ((r)->pregs_quad)
#define RID_pregs_complex_quad(r)   ((r)->pregs_complex_quad)
#define RID_pregs_out(r)   ((r)->pregs_out)
#define RID_pregs_out_i(r, i)   (((r)->pregs_out)?(((r)->pregs_out)[(i)]):((PREG_LIST *)NULL))
#define RID_pregs_set_out_i(r, i)   (((r)->pregs_out)[(i)])
#define RID_used_in(r)   ((r)->used_in)
#define RID_def_in_live_out(r)   ((r)->def_in_live_out)
#define RID_has_reg_alloc(r)   (RID_gra_flags(r) & RID_FLAGS_has_reg_alloc)
#define RID_has_reg_alloc_Set(r)   (RID_gra_flags(r) |= RID_FLAGS_has_reg_alloc)
#define RID_has_reg_alloc_Reset(r)   (RID_gra_flags(r) &= ~RID_FLAGS_has_reg_alloc)
#define RID_was_gra(r)   (RID_gra_flags(r) & RID_FLAGS_was_gra)
#define RID_was_gra_Set(r)   (RID_gra_flags(r) |= RID_FLAGS_was_gra)
#define RID_was_gra__Reset(r)   (RID_gra_flags(r) &= ~RID_FLAGS_was_gra)
#define RID_TYPE_func_entry(r)   (RID_type(r) & RID_TYPE_func_entry)
#define RID_TYPE_func_entry_Set(r)
#define RID_TYPE_func_entry_Reset(r)
#define RID_TYPE_loop(r)   (RID_type(r) & RID_TYPE_loop)
#define RID_TYPE_loop_Set(r)
#define RID_TYPE_loop_Reset(r)
#define RID_TYPE_pragma(r)   (RID_type(r) & RID_TYPE_pragma)
#define RID_TYPE_pragma_Set(r)
#define RID_TYPE_pragma_Reset(r)
#define RID_TYPE_olimit(r)   (RID_type(r) & RID_TYPE_olimit)
#define RID_TYPE_olimit_Set(r)
#define RID_TYPE_olimit_Reset(r)
#define RID_TYPE_mp(r)   (RID_type(r) & RID_TYPE_mp)
#define RID_TYPE_mp_Set(r)
#define RID_TYPE_mp_Reset(r)
#define RID_TYPE_rpi(r)   (RID_type(r) & RID_TYPE_rpi)
#define RID_TYPE_rpi_Set(r)
#define RID_TYPE_rpi_Reset(r)
#define RID_TYPE_cold(r)   (RID_type(r) & RID_TYPE_cold)
#define RID_TYPE_cold_Set(r)
#define RID_TYPE_cold_Reset(r)
#define RID_TYPE_swp(r)   (RID_type(r) & RID_TYPE_swp)
#define RID_TYPE_swp_Set(r)
#define RID_TYPE_swp_Reset(r)
#define RID_TYPE_eh(r)   (RID_type(r) & RID_TYPE_eh)
#define RID_TYPE_try(r)   (RID_type(r) & RID_TYPE_try)
#define RID_TYPE_try_Set(r)
#define RID_TYPE_try_Reset(r)
#define RID_TYPE_cleanup(r)   (RID_type(r) & RID_TYPE_cleanup)
#define RID_TYPE_cleanup_Set(r)
#define RID_TYPE_cleanup_Reset(r)
#define RID_TYPE_exc_spec(r)   (RID_type(r) & RID_TYPE_exc_spec)
#define RID_TYPE_exc_spec_Set(r)
#define RID_TYPE_exc_spec_Reset(r)
#define RID_TYPE_mask(r)   (RID_type(r) & RID_TYPE_mask)
#define RID_TYPE_mask_Set(r)
#define RID_TYPE_mask_Reset(r)
#define RID_TYPE_guard(r)   (RID_type(r) & RID_TYPE_guard)
#define RID_TYPE_guard_Set(r)
#define RID_TYPE_guard_Reset(r)
#define RID_TYPE_null_cleanup(r)   (RID_type(r) & RID_TYPE_null_cleanup)
#define RID_TYPE_null_cleanup_Set(r)
#define RID_TYPE_null_cleanup_Reset(r)
#define RID_TYPE_transparent(r)
#define REGION_STACK_SIZE   10
#define REGION_CS_ITER_me(i)   ((i)->me)
#define REGION_CS_ITER_kid(i)   ((i)->kid)
#define REGION_CS_ITER_type(i)   ((i)->type)
#define REGION_CS_ITER_parent_block(i)   ((i)->parent_block)
#define REGION_CS_ITER_sp(i)   ((i)->region_marker_sp)
#define REGION_CS_ITER_marker(i, j)   ((i)->region_marker[j])
#define REGION_CS_ITER_is_pu(i)   ((i)->is_pu)
#define REGION_CS_ITER_is_not_stacked(i)   ((i)->is_not_stacked)
#define REGION_CS_ITER_wn(i)   (RID_rwn((i)->kid))

Typedefs

typedef union region_flags_union URFLAG
typedef struct points_to_ref POINTS_TO_SET
typedef struct region_id RID
typedef struct region_cs_iter REGION_CS_ITER

Enumerations

enum  REGION_LEVEL {
  RL_UNKNOWN, RL_SRC, RL_MP, RL_RGN_INIT,
  RL_IPA_PREOPT, RL_LNO_PREOPT, RL_LNO, RL_DU_PREOPT,
  RL_RAIL, RL_RBI, RL_PREOPT, RL_MAINOPT,
  RL_RVI1, RL_RVI2, RL_CG, RL_CGSCHED,
  RL_LAST
}
enum  REGION_FLAGS { RID_FLAGS_has_reg_alloc = 0x1, RID_FLAGS_was_gra = 0x2 }
enum  RID_TYPE {
  RID_TYPE_undefined = 0x00, RID_TYPE_func_entry = 0x01, RID_TYPE_loop = 0x02, RID_TYPE_pragma = 0x04,
  RID_TYPE_olimit = 0x08, RID_TYPE_mp = 0x10, RID_TYPE_rpi = 0x20, RID_TYPE_cold = 0x40,
  RID_TYPE_swp = 0x80, RID_TYPE_eh = 0x3f000, RID_TYPE_try = 0x01000, RID_TYPE_cleanup = 0x02000,
  RID_TYPE_exc_spec = 0x04000, RID_TYPE_mask = 0x08000, RID_TYPE_guard = 0x10000, RID_TYPE_null_cleanup = 0x20000
}
enum  REGION_DEBUG_FLAGS {
  TT_REGION_USER_DEBUG = 0x0001, TT_REGION_LARGE_PU_DEBUG = 0x0002, TT_REGION_LARGE_PU_OFF = 0x0004, TT_REGION_RGN_INIT_DEBUG = 0x0008,
  TT_REGION_LNO_DEBUG = 0x0010, TT_REGION_RAIL_DEBUG = 0x0020, TT_REGION_RBI_DEBUG = 0x0040, TT_REGION_WOPT_DEBUG = 0x0080,
  TT_REGION_CG_DEBUG = 0x0100, TT_REGION_BOUND_DEBUG = 0x0200, TT_REGION_ALL = 0xffffffff
}
enum  REGION_BOUND_EXIST { REGION_BOUND_UNKNOWN = FALSE, REGION_BOUND_EXISTS = TRUE }
enum  REGION_RETURN_ENUM { REGION_NO_RETURN = FALSE, REGION_RETURN = TRUE }

Functions/Subroutines

INT32 New_Region_Id (void)
INT32 Last_Region_Id (void)
void REGION_new_wn (WN *, WN *)
BOOL REGION_consistency_check (WN *)
void REGION_update_alias_info (WN *, struct ALIAS_MANAGER *)
RIDREGION_get_rid (const WN *)
WNREGION_find_pu (WN *)
BOOL REGION_has_black_regions (RID *)
void REGION_set_level (RID *, REGION_LEVEL)
BOOL REGION_count_exits (WN *)
void REGION_fix_up_exits (RID *, WN *)
BOOL REGION_scan_exits (WN *, INT32)
RIDRID_Create (INT, INT, WN *)
void RID_Add_kid (RID *, RID *)
void RID_unlink (RID *)
void RID_replace (RID *old_rid, RID *new_rid)
void RID_Delete (WN_MAP_TAB *, WN *)
void RID_Delete2 (RID *)
void REGION_clone (WN *, WN *, WN *)
void REGION_emit (RID *, WN *, INT32, INT32, INT64)
void RID_copy_sets (RID *, RID *)
REGION_LEVEL RID_preopt_level (INT)
BOOL REGION_search_preg_set (PREG_LIST *, PREG_NUM)
void REGION_add_wn_points_to (POINTS_TO_SET **, WN *, struct ALIAS_MANAGER *)
void REGION_add_points_to (POINTS_TO_SET **, POINTS_TO *, struct ALIAS_MANAGER *)
POINTS_TOPoints_to_copy (POINTS_TO *, MEM_POOL *)
void Get_symbol_info_for_cvt_io (POINTS_TO *, WN *)
POINTS_TOPoints_to (struct ALIAS_MANAGER *, WN *)
BOOL REGION_add_preg_in (RID *rid, PREG_NUM pr, TYPE_ID quad)
BOOL REGION_add_preg_out (RID *rid, INT32 which_set, PREG_NUM pr, TYPE_ID quad)
BOOL REGION_remove_preg (RID *rid, PREG_NUM pr, BOOL outset)
WNREGION_add_exit (WN *, WN *, WN *)
void REGION_delete_exit (RID *, INT32, WN *, BOOL)
char * REGION_get_options_string (WN *)
BOOL REGION_is_EH (WN *)
BOOL REGION_is_mp (WN *)
BOOL WN_Fake_Call_EH_Region (WN *, WN_MAP)
REGION_KIND REGION_type_to_kind (RID *)
void REGION_kind_to_type (WN *, RID *)
void REGION_propagate_return (RID *)
char * RID_level_str (RID *rid)
char * RID_type_str (RID_TYPE type)
void RID_set_print (FILE *, RID *)
void Print_points_to (FILE *, POINTS_TO *)
void RID_Fprint (FILE *, RID *)
void RID_Tree_Print (FILE *, RID *)
void RID_WN_Tree_Print (FILE *, WN *)

Variables

WN_MAP RID_map
MEM_POOL REGION_mem_pool


Define Documentation

#define POINTS_TO   void

Definition at line 69 of file region_util.h.

Referenced by DEPV_COMPUTE::Base_Test(), and Points_To().

#define REGION_CS_ITER_is_not_stacked ( i   )     ((i)->is_not_stacked)

#define REGION_CS_ITER_is_pu ( i   )     ((i)->is_pu)

#define REGION_CS_ITER_kid ( i   )     ((i)->kid)

#define REGION_CS_ITER_marker ( i,
 )     ((i)->region_marker[j])

#define REGION_CS_ITER_me ( i   )     ((i)->me)

#define REGION_CS_ITER_parent_block ( i   )     ((i)->parent_block)

Definition at line 443 of file region_util.h.

Referenced by REGION_remove_and_mark(), and REGION_replace_from_mark().

#define REGION_CS_ITER_sp ( i   )     ((i)->region_marker_sp)

#define REGION_CS_ITER_type ( i   )     ((i)->type)

#define REGION_CS_ITER_wn ( i   )     (RID_rwn((i)->kid))

Definition at line 448 of file region_util.h.

Referenced by REGION_CS_NoEarlierSub_Next(), and REGION_remove_and_mark().

#define REGION_STACK_SIZE   10

Definition at line 428 of file region_util.h.

Referenced by REGION_CS_ITER_init(), and REGION_remove_and_mark().

#define RID_aliased_to_globals (  )     (URFLAG_aliased_to_globals(*((URFLAG *)(&RID_flags(r)))))

#define RID_aliased_to_indirects (  )     (URFLAG_aliased_to_indirects(*((URFLAG *)(&RID_flags(r)))))

#define RID_bounds_exist (  )     (URFLAG_bounds_exist(*((URFLAG *)(&RID_flags(r)))))

#define RID_cginfo (  )     ((r)->cginfo)

#define RID_contains_barrier (  )     (URFLAG_contains_barrier(*((URFLAG *)(&RID_flags(r)))))

#define RID_contains_black (  )     (URFLAG_contains_black(*((URFLAG *)(&RID_flags(r)))))

Definition at line 283 of file region_util.h.

Referenced by REGION_has_black_regions().

#define RID_contains_bounds (  )     (URFLAG_contains_bounds(*((URFLAG *)(&RID_flags(r)))))

#define RID_contains_uplevel (  )     (URFLAG_contains_uplevel(*((URFLAG *)(&RID_flags(r)))))

#define RID_CREATE_NEW_ID   -1

#define RID_def_in_live_out (  )     ((r)->def_in_live_out)

#define RID_depth (  )     ((r)->depth)

#define RID_eh_range_ptr (  )     ((r)->eh_range_ptr)

#define RID_first_kid (  )     ((r)->first_kid)

#define RID_flags (  )     ((r)->flags)

Definition at line 264 of file region_util.h.

Referenced by RID_Create(), and RID_Fprint().

#define RID_gra_flags (  )     (URFLAG_gra_flags(*((URFLAG *)(&RID_flags(r)))))

Definition at line 280 of file region_util.h.

#define RID_has_reg_alloc (  )     (RID_gra_flags(r) & RID_FLAGS_has_reg_alloc)

#define RID_has_reg_alloc_Reset (  )     (RID_gra_flags(r) &= ~RID_FLAGS_has_reg_alloc)

Definition at line 304 of file region_util.h.

#define RID_has_reg_alloc_Set (  )     (RID_gra_flags(r) |= RID_FLAGS_has_reg_alloc)

Definition at line 303 of file region_util.h.

Referenced by Create_Region(), GRA_REGION::Set_GRA_Colored(), and SWP_Emit().

#define RID_has_return (  )     (URFLAG_return_flag(*((URFLAG *)(&RID_flags(r)))))

#define RID_id (  )     ((r)->id)

Definition at line 261 of file region_util.h.

Referenced by RINIT::Add_label_alias(), CFG::Add_one_region(), RAIL::Add_region_around_loop(), Append_Region_BBs(), BB_Predecessor_Compiled_Region(), Build_CFG(), GRA_PARA_REGION_MGR::Build_Map_For_Pair_Region(), RINIT::Cancel_internal_gotos(), CG_Generate_Code(), CG_Region_Finalize(), GRA_PARA_REGION_MGR::Check_Register_Allocation(), OPT_STAB::Compute_region_mu_chi(), OPT_STAB::Convert_ST_to_AUX(), Convert_WHIRL_To_OPs(), CFG::Create(), Disable_opt(), Do_WOPT_and_CG_with_Regions(), ML_WHIRL_EMITTER::Emit(), EMT_Assemble_BB(), RINIT::Expand_label_alias(), GOTO::fdump(), GRA_PARA_REGION_MGR::Get(), GRA_REGION_MGR::Get(), GRA_PARA_REGION_MGR::Get_Pair_Rid(), REGION_BOUND::GRB_merge_preg(), REGION_BOUND::GRB_merge_var(), RINIT::Handle_split_label(), CFG::Ident_mp_regions(), ir_put_wn(), label_is_external(), LNO_Processing(), Localize_or_Replace_Dedicated_TNs(), DCE::Mark_region_exits_live(), GOTO::Modify_exits(), Perform_Loop_Nest_Optimization(), ML_WHIRL_EMITTER::Pop_region(), RVI_EMIT::Pop_region(), Pop_region(), GRA_PARA_REGION_MGR::Pre_Reserve_Registers_For_Minor(), BB_NODE::Print_head(), RINIT::Print_sets(), RINIT::Process_region(), REGION_BOUND::Propagate_boundary_up(), EMITTER::Raise_func_entry(), Raise_region_stmt(), REGION_add_preg_in(), REGION_add_preg_out(), OPT_STAB::REGION_add_to_bound(), REGION_consistency_check(), REGION_CS_print(), REGION_delete_exit(), REGION_Entry_PREG_Whirl(), REGION_Exit_PREG_Whirl(), REGION_init(), REGION_live_in_from_chi(), REGION_live_out_from_mu(), REGION_new_wn(), REGION_propagate_return(), REGION_remove_and_mark(), PRUNE_BOUND::REGION_remove_from_bound(), REGION_remove_preg(), REGION_replace_from_mark(), OPT_STAB::REGION_verify_bound(), RID_Create(), RID_Delete2(), RID_Fprint(), RID_set_print(), GOTO::Set_region_exit(), GRA_PARA_REGION_MGR::Set_Region_LRA_Budget(), and WOPT_Processing().

#define RID_is_glue_code (  )     (URFLAG_glue_code_flag(*((URFLAG *)(&RID_flags(r)))))

#define RID_level (  )     (URFLAG_level(*((URFLAG *)(&RID_flags(r)))))

Definition at line 279 of file region_util.h.

Referenced by CFG::Add_one_region(), RAIL::Add_region_around_loop(), OPT_STAB::Allocate_mu_chi_and_virtual_var(), BB_compile(), BB_Predecessor_Compiled_Region(), BB_Reaches_Call_or_Exit(), BB_Successor_Compiled_Region(), Build_CFG(), Call_or_Entry_Reaches_BB(), Can_Append_Succ(), CG_DEP_Compute_Graph(), CG_Dump_Region(), CG_Sched(), Check_If_Dedicated_TN_Is_Global(), ALIAS_CLASSIFICATION::Classify_wn_and_kids(), EMITTER::Compute_use_def_stmt(), Convert_Goto_To_Return(), OPT_STAB::Convert_ST_to_AUX(), convert_stmt_list_to_OPs(), Convert_WHIRL_To_OPs(), OPT_STAB::Count_syms(), Create_Cold_Region(), Create_Region(), Create_Single_Region(), EBO_Process(), ALIAS_CLASSIFICATION::Finalize_ac_map(), Finalize_BB(), Find_Global_TNs(), GCM_Fill_Branch_Delay_Slots(), GCM_For_Loop(), GCM_Schedule_Region(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_Entry(), Generate_Exit(), OPT_STAB::Generate_mu_and_chi_list(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), GRA_LIVE_Compute_Local_Info(), GRA_LIVE_Localize_TNs(), GRA_LIVE_Rename_TNs(), REGION_BOUND::grb(), IGLS_Schedule_Region(), Insert_Goto_BB(), Insert_Spills_Of_Globals(), Localize_or_Replace_Dedicated_TNs(), LRA_Allocate_Registers(), Optimize_Branches(), Perform_Loop_Nest_Optimization(), Pre_Optimizer(), RAIL::Process_func_entry(), RINIT::Process_region(), Redundancy_Elimination(), REGION_clone(), REGION_emit(), REGION_Initialize(), REGION_set_level(), OPT_STAB::Remap_aux_synonym(), OPT_STAB::Remap_ver_synonym(), remove_prolog_or_epilog_bbs(), SSA::Rename(), RID_level_str(), RESTRICTED_MAP::Save_info(), Simd_Finalize_Loops(), Split_BBs(), and SWP_Emit().

#define RID_lowered (  )     ((r)->lowered)

Definition at line 274 of file region_util.h.

Referenced by lower_bit_field_id(), RID_Create(), and RID_Fprint().

#define RID_next (  )     ((r)->next)

#define RID_num_exits (  )     ((r)->num_exits)

#define RID_options (  )     ((r)->options)

#define RID_parent (  )     ((r)->parent)

#define RID_parent_block (  )     ((r)->parent_block)

#define RID_pregs_complex_quad (  )     ((r)->pregs_complex_quad)

#define RID_pregs_in (  )     ((r)->pregs_in)

#define RID_pregs_out (  )     ((r)->pregs_out)

#define RID_pregs_out_i ( r,
i   )     (((r)->pregs_out)?(((r)->pregs_out)[(i)]):((PREG_LIST *)NULL))

#define RID_pregs_quad (  )     ((r)->pregs_quad)

#define RID_pregs_set_out_i ( r,
i   )     (((r)->pregs_out)[(i)])

#define RID_rloop (  )     ((r)->rloop)

Definition at line 273 of file region_util.h.

#define RID_rwn (  )     ((r)->rwn)

#define RID_srcpos (  )     ((r)->srcpos)

Definition at line 263 of file region_util.h.

Referenced by REGION_clone(), RID_Create(), RID_Fprint(), and Simd_Finalize_Loops().

#define RID_type (  )     ((r)->rid_type)

#define RID_TYPE_cleanup (  )     (RID_type(r) & RID_TYPE_cleanup)

Definition at line 381 of file region_util.h.

Referenced by Range_Kind(), REGION_is_EH(), REGION_type_to_kind(), and RID_type_str().

#define RID_TYPE_cleanup_Reset (  ) 

Value:

Definition at line 384 of file region_util.h.

#define RID_TYPE_cleanup_Set (  ) 

Value:

Definition at line 382 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_cold (  )     (RID_type(r) & RID_TYPE_cold)

Definition at line 346 of file region_util.h.

Referenced by BB_Is_Cold(), Create_Cold_Region(), REGION_type_to_kind(), and RID_type_str().

#define RID_TYPE_cold_Reset (  ) 

Value:

Definition at line 349 of file region_util.h.

#define RID_TYPE_cold_Set (  ) 

Value:

Definition at line 347 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_eh (  )     (RID_type(r) & RID_TYPE_eh)

#define RID_TYPE_exc_spec (  )     (RID_type(r) & RID_TYPE_exc_spec)

Definition at line 387 of file region_util.h.

Referenced by Range_Kind(), REGION_is_EH(), REGION_type_to_kind(), and RID_type_str().

#define RID_TYPE_exc_spec_Reset (  ) 

Value:

Definition at line 390 of file region_util.h.

#define RID_TYPE_exc_spec_Set (  ) 

Value:

Definition at line 388 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_func_entry (  )     (RID_type(r) & RID_TYPE_func_entry)

#define RID_TYPE_func_entry_Reset (  ) 

Value:

Definition at line 313 of file region_util.h.

#define RID_TYPE_func_entry_Set (  ) 

Value:

Definition at line 311 of file region_util.h.

Referenced by REGION_Initialize().

#define RID_TYPE_guard (  )     (RID_type(r) & RID_TYPE_guard)

#define RID_TYPE_guard_Reset (  ) 

Value:

Definition at line 402 of file region_util.h.

#define RID_TYPE_guard_Set (  ) 

Value:

Definition at line 400 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_loop (  )     (RID_type(r) & RID_TYPE_loop)

#define RID_TYPE_loop_Reset (  ) 

Value:

Definition at line 319 of file region_util.h.

#define RID_TYPE_loop_Set (  ) 

Value:

Definition at line 317 of file region_util.h.

Referenced by RAIL::Add_region_around_loop(), and REGION_kind_to_type().

#define RID_TYPE_mask (  )     (RID_type(r) & RID_TYPE_mask)

Definition at line 393 of file region_util.h.

Referenced by Range_Kind(), REGION_is_EH(), REGION_type_to_kind(), and RID_type_str().

#define RID_TYPE_mask_Reset (  ) 

Value:

Definition at line 396 of file region_util.h.

#define RID_TYPE_mask_Set (  ) 

Value:

Definition at line 394 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_mp (  )     (RID_type(r) & RID_TYPE_mp)

#define RID_TYPE_mp_Reset (  ) 

Value:

Definition at line 337 of file region_util.h.

#define RID_TYPE_mp_Set (  ) 

#define RID_TYPE_null_cleanup (  )     (RID_type(r) & RID_TYPE_null_cleanup)

Definition at line 405 of file region_util.h.

Referenced by Range_Kind(), REGION_is_EH(), REGION_type_to_kind(), and RID_type_str().

#define RID_TYPE_null_cleanup_Reset (  ) 

Value:

Definition at line 408 of file region_util.h.

#define RID_TYPE_null_cleanup_Set (  ) 

Value:

Definition at line 406 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_olimit (  )     (RID_type(r) & RID_TYPE_olimit)

#define RID_TYPE_olimit_Reset (  ) 

Value:

Definition at line 331 of file region_util.h.

#define RID_TYPE_olimit_Set (  ) 

Value:

Definition at line 329 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_pragma (  )     (RID_type(r) & RID_TYPE_pragma)

#define RID_TYPE_pragma_Reset (  ) 

Value:

Definition at line 325 of file region_util.h.

#define RID_TYPE_pragma_Set (  ) 

Value:

Definition at line 323 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_rpi (  )     (RID_type(r) & RID_TYPE_rpi)

Definition at line 340 of file region_util.h.

Referenced by REGION_type_to_kind(), and RID_type_str().

#define RID_TYPE_rpi_Reset (  ) 

Value:

Definition at line 343 of file region_util.h.

#define RID_TYPE_rpi_Set (  ) 

Value:

Definition at line 341 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_swp (  )     (RID_type(r) & RID_TYPE_swp)

#define RID_TYPE_swp_Reset (  ) 

Value:

Definition at line 355 of file region_util.h.

#define RID_TYPE_swp_Set (  ) 

Value:

Definition at line 353 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_TYPE_transparent (  ) 

#define RID_TYPE_try (  )     (RID_type(r) & RID_TYPE_try)

Definition at line 375 of file region_util.h.

Referenced by Range_Kind(), REGION_is_EH(), REGION_type_to_kind(), and RID_type_str().

#define RID_TYPE_try_Reset (  ) 

Value:

Definition at line 378 of file region_util.h.

#define RID_TYPE_try_Set (  ) 

Value:

Definition at line 376 of file region_util.h.

Referenced by REGION_kind_to_type().

#define RID_used_in (  )     ((r)->used_in)

#define RID_was_gra (  )     (RID_gra_flags(r) & RID_FLAGS_was_gra)

Definition at line 305 of file region_util.h.

Referenced by GRA_REGION::Prev_Alloc_By_GRA().

#define RID_was_gra__Reset (  )     (RID_gra_flags(r) &= ~RID_FLAGS_was_gra)

Definition at line 307 of file region_util.h.

#define RID_was_gra_Set (  )     (RID_gra_flags(r) |= RID_FLAGS_was_gra)

Definition at line 306 of file region_util.h.

Referenced by GRA_REGION::Set_GRA_Colored().

#define URFLAG_aliased_to_globals (  )     ((r).rfs.aliased_to_globals)

Definition at line 205 of file region_util.h.

#define URFLAG_aliased_to_indirects (  )     ((r).rfs.aliased_to_indirects)

Definition at line 206 of file region_util.h.

#define URFLAG_bounds_exist (  )     ((r).rfs.bounds_exist)

Definition at line 204 of file region_util.h.

#define URFLAG_clear (  )     ( (r).flags = 0 )

Definition at line 195 of file region_util.h.

#define URFLAG_contains_barrier (  )     ((r).rfs.contains_barrier)

Definition at line 208 of file region_util.h.

#define URFLAG_contains_black (  )     ((r).rfs.contains_black)

Definition at line 202 of file region_util.h.

#define URFLAG_contains_bounds (  )     ((r).rfs.contains_bounds)

Definition at line 203 of file region_util.h.

#define URFLAG_contains_uplevel (  )     ((r).rfs.contains_uplevel)

Definition at line 207 of file region_util.h.

#define URFLAG_flags (  )     ((r).flags)

Definition at line 194 of file region_util.h.

#define URFLAG_glue_code_flag (  )     ((r).rfs.glue_code_flag)

Definition at line 201 of file region_util.h.

#define URFLAG_gra_flags (  )     ((r).rfs.gra_flags)

Definition at line 199 of file region_util.h.

#define URFLAG_level (  )     ((r).rfs.level)

Definition at line 197 of file region_util.h.

#define URFLAG_return_flag (  )     ((r).rfs.return_flag)

Definition at line 200 of file region_util.h.

#define URFLAG_rfs (  )     ((r).rfs)

Definition at line 196 of file region_util.h.

#define URFLAG_type (  )     ((r).rfs.type)

Definition at line 198 of file region_util.h.


Typedef Documentation

typedef struct region_id RID

typedef union region_flags_union URFLAG


Enumeration Type Documentation

Enumerator:
REGION_BOUND_UNKNOWN 
REGION_BOUND_EXISTS 

Definition at line 173 of file region_util.h.

Enumerator:
TT_REGION_USER_DEBUG 
TT_REGION_LARGE_PU_DEBUG 
TT_REGION_LARGE_PU_OFF 
TT_REGION_RGN_INIT_DEBUG 
TT_REGION_LNO_DEBUG 
TT_REGION_RAIL_DEBUG 
TT_REGION_RBI_DEBUG 
TT_REGION_WOPT_DEBUG 
TT_REGION_CG_DEBUG 
TT_REGION_BOUND_DEBUG 
TT_REGION_ALL 

Definition at line 156 of file region_util.h.

Enumerator:
RID_FLAGS_has_reg_alloc 
RID_FLAGS_was_gra 

Definition at line 116 of file region_util.h.

Enumerator:
RL_UNKNOWN 
RL_SRC 
RL_MP 
RL_RGN_INIT 
RL_IPA_PREOPT 
RL_LNO_PREOPT 
RL_LNO 
RL_DU_PREOPT 
RL_RAIL 
RL_RBI 
RL_PREOPT 
RL_MAINOPT 
RL_RVI1 
RL_RVI2 
RL_CG 
RL_CGSCHED 
RL_LAST 

Definition at line 81 of file region_util.h.

Enumerator:
REGION_NO_RETURN 
REGION_RETURN 

Definition at line 181 of file region_util.h.

enum RID_TYPE

Enumerator:
RID_TYPE_undefined 
RID_TYPE_func_entry 
RID_TYPE_loop 
RID_TYPE_pragma 
RID_TYPE_olimit 
RID_TYPE_mp 
RID_TYPE_rpi 
RID_TYPE_cold 
RID_TYPE_swp 
RID_TYPE_eh 
RID_TYPE_try 
RID_TYPE_cleanup 
RID_TYPE_exc_spec 
RID_TYPE_mask 
RID_TYPE_guard 
RID_TYPE_null_cleanup 

Definition at line 132 of file region_util.h.


Function Documentation

void Get_symbol_info_for_cvt_io ( POINTS_TO ,
WN  
)

INT32 Last_Region_Id ( void   ) 

INT32 New_Region_Id ( void   ) 

POINTS_TO* Points_to ( struct ALIAS_MANAGER ,
WN  
)

POINTS_TO* Points_to_copy ( POINTS_TO ,
MEM_POOL  
)

void Print_points_to ( FILE ,
POINTS_TO  
)

Definition at line 4892 of file opt_alias_analysis.cxx.

References fprintf(), and POINTS_TO::Print().

Referenced by Dump_points_to_list(), and REGION_add_points_to().

WN* REGION_add_exit ( WN ,
WN ,
WN  
)

void REGION_add_points_to ( POINTS_TO_SET **  ,
POINTS_TO ,
struct ALIAS_MANAGER  
)

BOOL REGION_add_preg_in ( RID rid,
PREG_NUM  pr,
TYPE_ID  quad 
)

BOOL REGION_add_preg_out ( RID rid,
INT32  which_set,
PREG_NUM  pr,
TYPE_ID  quad 
)

void REGION_add_wn_points_to ( POINTS_TO_SET **  ,
WN ,
struct ALIAS_MANAGER  
)

void REGION_clone ( WN ,
WN ,
WN  
)

BOOL REGION_consistency_check ( WN  ) 

BOOL REGION_count_exits ( WN  ) 

void REGION_delete_exit ( RID ,
INT32  ,
WN ,
BOOL   
)

void REGION_emit ( RID ,
WN ,
INT32  ,
INT32  ,
INT64   
)

WN* REGION_find_pu ( WN  ) 

void REGION_fix_up_exits ( RID ,
WN  
)

char* REGION_get_options_string ( WN  ) 

RID* REGION_get_rid ( const WN  ) 

Definition at line 173 of file region_util.cxx.

References NULL, RID_map, WN_MAP_Get, and WN_MAP_UNDEFINED.

Referenced by CFG::Add_one_region(), Add_Pragma_To_MP_Region(), RAIL::Add_region_around_loop(), OPT_STAB::Allocate_mu_chi_and_virtual_var(), CG_Dump_Region(), CG_Generate_Code(), CG_Region_Finalize(), CG_Region_Initialize(), ALIAS_CLASSIFICATION::Classify_wn_and_kids(), Cleanup_Ordered(), COMP_UNIT::COMP_UNIT(), OPT_STAB::Compute_region_mu_chi(), EMITTER::Compute_use_def_stmt(), OPT_STAB::Convert_ST_to_AUX(), convert_stmt_list_to_OPs(), Convert_WHIRL_To_OPs(), Copy_Non_MP_Tree_Rec(), OPT_STAB::Count_syms(), CFG::Create(), Disable_opt(), Do_WOPT_and_CG_with_Regions(), ALIAS_CLASSIFICATION::Finalize_ac_map(), OPT_STAB::Generate_mu_and_chi_list(), Generate_region_boundaries(), Get_Enclosing_Region_ID(), REGION_BOUND::grb(), initialize_region_stack(), ir_put_wn(), Is_Mp_Region(), Is_Ordered_Do(), LNO_Processing(), lower_bit_field_id(), DCE::Mark_region_exits_live(), Perform_Loop_Nest_Optimization(), Pre_Optimizer(), ALIAS_MANAGER::Print(), RAIL::Process_func_entry(), Read_Pragma_Thread_Affinity(), Region_Bound_Info(), REGION_clone(), REGION_consistency_check(), REGION_CS_NoEarlierSub_Next(), REGION_emit(), REGION_find_pu(), REGION_Initialize(), REGION_is_EH(), REGION_is_mp(), REGION_new_wn(), REGION_remove_and_mark(), REGION_replace_from_mark(), OPT_STAB::Remap_aux_synonym(), OPT_STAB::Remap_ver_synonym(), SSA::Rename(), RID_WN_Tree_Print(), RESTRICTED_MAP::Save_info(), Simd_Finalize_Loops(), Transfer_Maps_R(), Translate_OMP_to_MP(), Update_MP_Local_Var(), update_parent_block(), Update_Private(), WN_has_chi(), WN_has_mu(), and WOPT_Processing().

BOOL REGION_has_black_regions ( RID  ) 

BOOL REGION_is_EH ( WN  ) 

BOOL REGION_is_mp ( WN  ) 

void REGION_kind_to_type ( WN ,
RID  
)

void REGION_new_wn ( WN ,
WN  
)

void REGION_propagate_return ( RID  ) 

BOOL REGION_remove_preg ( RID rid,
PREG_NUM  pr,
BOOL  outset 
)

BOOL REGION_scan_exits ( WN ,
INT32   
)

BOOL REGION_search_preg_set ( PREG_LIST *  ,
PREG_NUM   
)

void REGION_set_level ( RID ,
REGION_LEVEL   
)

Definition at line 244 of file region_util.cxx.

References REGION_set_level(), RID_first_kid, RID_level, and RID_next.

Referenced by CG_Region_Finalize(), and REGION_set_level().

REGION_KIND REGION_type_to_kind ( RID  ) 

void REGION_update_alias_info ( WN ,
struct ALIAS_MANAGER  
)

void RID_Add_kid ( RID ,
RID  
)

void RID_copy_sets ( RID ,
RID  
)

RID* RID_Create ( INT  ,
INT  ,
WN  
)

void RID_Delete ( WN_MAP_TAB ,
WN  
)

void RID_Delete2 ( RID  ) 

void RID_Fprint ( FILE ,
RID  
)

char* RID_level_str ( RID rid  ) 

REGION_LEVEL RID_preopt_level ( INT   ) 

void RID_replace ( RID old_rid,
RID new_rid 
)

Definition at line 393 of file region_util.cxx.

References FALSE, FmtAssert, NULL, RID_first_kid, RID_next, and RID_parent.

void RID_set_print ( FILE ,
RID  
)

void RID_Tree_Print ( FILE ,
RID  
)

char* RID_type_str ( RID_TYPE  type  ) 

void RID_unlink ( RID  ) 

Definition at line 374 of file region_util.cxx.

References FALSE, FmtAssert, NULL, RID_first_kid, RID_next, and RID_parent.

Referenced by Transfer_Maps_R().

void RID_WN_Tree_Print ( FILE ,
WN  
)

BOOL WN_Fake_Call_EH_Region ( WN ,
WN_MAP   
)


Variable Documentation


Generated on Wed Apr 8 14:36:31 2009 for Open64 by  doxygen 1.5.6