osprey/be/com/wn_mp.cxx File Reference

#include <stdint.h>
#include <sys/types.h>
#include <elf.h>
#include <bstring.h>
#include "wn.h"
#include "wn_util.h"
#include "erglob.h"
#include "errors.h"
#include "strtab.h"
#include "symtab.h"
#include "irbdata.h"
#include "dwarf_DST_mem.h"
#include "pu_info.h"
#include "ir_bwrite.h"
#include "ir_reader.h"
#include "ir_bcom.h"
#include "region_util.h"
#include "dep_graph.h"
#include "cxx_hash.h"
#include "wn_mp.h"
#include <string.h>
#include "alloca.h"
#include "cxx_template.h"
#include "defs.h"
#include "glob.h"
#include "erbe.h"
#include "tracing.h"
#include "wn_simp.h"
#include "stblock.h"
#include "data_layout.h"
#include "targ_sim.h"
#include "targ_const.h"
#include "config_targ.h"
#include "config_asm.h"
#include "const.h"
#include "ttype.h"
#include "wn_pragmas.h"
#include "wn_lower.h"
#include "wutil.h"
#include "wn_map.h"
#include "dwarf_DST.h"
#include "dwarf_DST_producer.h"
#include "config.h"
#include "standardize.h"
#include "omp_lower.h"
#include "privatize_common.h"
#include "mempool.h"
#include "parmodel.h"
#include "fb_info.h"
#include "fb_whirl.h"
#include "be_symtab.h"

Go to the source code of this file.

Data Types

type  VAR_TABLE
type  PREG_INFO
module  BOUNDSCHECKED_VECTOR< T >
module  Verify_MP_Lowered
module  Linenum_Pusher
type  Localize_Nested_PU_Exception_Region
module  Localize_Parent_Stack
module  Alloca_Var_List
type  Alloca_Var_List::Info
type  namelock_kind

Defines

#define __STDC_LIMIT_MACROS
#define USE_STANDARD_TYPES
#define WN_Compare_Trees(x, y)   (WN_Simp_Compare_Trees(x,y))
#define csc_debug(x)   csc_printf(x,__LINE__)
#define GET_RETURN_PREGS(rreg1, rreg2, type)   my_Get_Return_Pregs(&rreg1, &rreg2, type, __FILE__, __LINE__)
#define MPSP_STATUS_PREG_NAME   "mpsp_status"
#define IS_MASTER_PREG_NAME   "mp_is_master"
#define GET_MPRUNTIME_ST(x)
#define OMP_NON_POD_LASTLOCAL_FLAG_NAME   "__omp_non_pod_lastlocal"
#define OMP_NON_POD_FIRST_AND_LASTLOCAL_FLAG_NAME   "__omp_non_pod_first_and_lastlocal"
#define MAX_NDIM   7
#define STACK_CHUNK   10

Typedefs

typedef LABEL_IDX LABEL_INFO_TABLE
typedef STSHARED_TABLE
typedef INT32 MPID_TABLE
typedef HASH_TABLE< WN *, BOOLWN_TO_BOOL_HASH
typedef BOUNDSCHECKED_VECTOR
< PREG_INFO
PREG_INFO_TABLE
typedef HASH_TABLE< VINDEX16,
VINDEX16
VV_HASH_TABLE
typedef STACK< VINDEX16V_STACK

Enumerations

enum  MPRUNTIME {
  MPRUNTIME_NONE = 0, MPRUNTIME_FIRST = 1, MPR_SETUP = 1, MPR_CLEANUP = 2,
  MPR_GETLOCK = 3, MPR_UNLOCK = 4, MPR_BARRIER = 5, MPR_SETLOCK = 6,
  MPR_UNSETLOCK = 7, MPR_COPYIN = 8, MPR_PARALLEL_DO_32 = 9, MPR_PARALLEL_DO_64 = 10,
  MPR_PARALLEL_REGION = 11, MPR_BEGIN_PDO_32 = 12, MPR_BEGIN_PDO_64 = 13, MPR_NEXT_ITERS_32 = 14,
  MPR_NEXT_ITERS_64 = 15, MPR_END_PDO = 16, MPR_BEGIN_SINGLE_PROCESS = 17, MPR_END_SINGLE_PROCESS = 18,
  MPR_ENTER_GATE = 19, MPR_EXIT_GATE = 20, MPR_BEGIN_INDEPENDENT = 21, MPR_END_INDEPENDENT = 22,
  MPR_MY_THREADNUM = 23, MPR_OMP_PARALLEL_REGION = 24, MPR_OMP_BEGIN_SPR = 25, MPR_OMP_END_SPR = 26,
  MPR_OMP_PARALLEL_DO_32 = 27, MPR_OMP_PARALLEL_DO_64 = 28, MPR_OMP_BEGIN_PDO_64 = 29, MPR_OMP_NEXT_ITERS_64 = 30,
  MPR_OMP_END_PDO = 31, MPR_OMP_BEGIN_SINGLE_PROCESS = 32, MPR_OMP_END_SINGLE_PROCESS = 33, MPR_OMP_BARRIER_OLD = 34,
  MPR_OMP_PDO_ORDERED_BEGIN = 35, MPR_OMP_PDO_ORDERED_END = 36, MPR_OMP_ORDERED_BEGIN_OLD = 37, MPR_OMP_ORDERED_END_OLD = 38,
  MPR_OMP_COPYIN = 39, MPR_OMP_NONPOD_COPYIN = 40, MPR_OMP_NONPOD_ARRAY_COPYIN = 41, MPR_OMP_IN_PARALLEL = 42,
  MPR_OMP_CAN_FORK = 43, MPR_OMP_SET_NUM_THREADS = 44, MPR_OMP_INIT_RTL = 45, MPR_OMP_FINI_RTL = 46,
  MPR_OMP_SERIALIZED_PARALLEL = 47, MPR_OMP_END_SERIALIZED_PARALLEL = 48, MPR_OMP_GET_THREAD_NUM = 49, MPR_OMP_GET_NUM_THREADS = 50,
  MPR_OMP_FORK = 51, MPR_OMP_STATIC_INIT_4 = 52, MPR_OMP_STATIC_INIT_8 = 53, MPR_OMP_STATIC_FINI = 54,
  MPR_OMP_SCHEDULER_INIT_4 = 55, MPR_OMP_SCHEDULER_INIT_8 = 56, MPR_OMP_SCHEDULER_NEXT_4 = 57, MPR_OMP_SCHEDULER_NEXT_8 = 58,
  MPR_OMP_SINGLE = 59, MPR_OMP_END_SINGLE = 60, MPR_OMP_MASTER = 61, MPR_OMP_END_MASTER = 62,
  MPR_OMP_BARRIER = 63, MPR_OMP_CRITICAL = 64, MPR_OMP_END_CRITICAL = 65, MPR_OMP_ORDERED = 66,
  MPR_OMP_END_ORDERED = 67, MPR_OMP_FLUSH = 68, MPRUNTIME_LAST = MPR_OMP_FLUSH
}
enum  SCHEDULE_TYPE {
  OMP_SCHED_UNKNOWN = 0, OMP_SCHED_STATIC = 1, OMP_SCHED_STATIC_EVEN = 2, OMP_SCHED_DYNAMIC = 3,
  OMP_SCHED_GUIDED = 4, OMP_SCHED_RUNTIME = 5, OMP_SCHED_ORDERED_STATIC = 33, OMP_SCHED_ORDERED_STATIC_EVEN = 34,
  OMP_SCHED_ORDERED_DYNAMIC = 35, OMP_SCHED_ORDERED_GUIDED = 36, OMP_SCHED_ORDERED_RUNTIME = 37, OMP_SCHED_NORMAL_FIRST = OMP_SCHED_STATIC,
  OMP_SCHED_NORMAL_LAST = OMP_SCHED_RUNTIME, OMP_SCHED_ORDERED_FIRST = OMP_SCHED_ORDERED_STATIC, OMP_SCHED_ORDERED_LAST = OMP_SCHED_ORDERED_RUNTIME
}
enum  PAR_FUNC_TYPE {
  PAR_FUNC_NONE = 0, PAR_FUNC_DO32, PAR_FUNC_DO64, PAR_FUNC_REGION,
  PAR_FUNC_LAST = PAR_FUNC_REGION
}
enum  VAR_TYPE {
  VAR_NONE = 0, VAR_LASTLOCAL = 1, VAR_LOCAL = 2, VAR_FIRSTPRIVATE = 3,
  VAR_REDUCTION_SCALAR = 4, VAR_REDUCTION_ARRAY = 5, VAR_REDUCTION_ARRAY_OMP = 6
}
enum  PREG_CLASS {
  PCLASS_UNKNOWN = 0, PCLASS_DEADIN_DEADOUT = 1, PCLASS_COPYIN_DEADOUT = 2, PCLASS_DEADIN_COPYOUT = 3,
  PCLASS_COPYIN_COPYOUT = 4, PCLASS_LIVEIN_DEADOUT = 5, PCLASS_DEADIN_LIVEOUT = 6, PCLASS_LIVEIN_LIVEOUT = 7
}

Functions/Subroutines

void csc_printf (const char *what, INT line)
WN_OFFSET WN_offsetx (WN *wn)
void WN_set_offsetx (WN *wn, WN_OFFSET ofst)
static TYPE_ID Promote_Type (TYPE_ID mtype)
static void my_Get_Return_Pregs (PREG_NUM *rreg1, PREG_NUM *rreg2, mTYPE_ID type, const char *file, INT line)
static WNGen_MP_Load_Store (ST *from_st, WN_OFFSET from_offset, ST *to_st, WN_OFFSET to_offset, BOOL is_dynamic)
static BOOL Is_NameLock_ST (ST *st)
ST_IDX Make_MPRuntime_ST (MPRUNTIME rop)
static STCreate_Gtid_ST (void)
static WNGet_Gtid (ST *gtid)
static void Create_Lock_Type ()
static WNGen_In_Parallel (void)
static WNGen_Can_Fork (void)
static WNGen_Set_Num_Threads (ST *gtid, WN *nThreads)
static WNGen_Fork (ST *proc, WN *nThreads)
static WNGen_Init_RTL ()
static WNGen_Fini_RTL ()
static WNGen_Get_Thread_Num ()
static WNGen_Store_Gtid ()
static WNSet_Thread_Num (WN *nThreads)
static WNGen_Get_Num_Threads ()
static WNGen_Serialized_Parallel (ST *gtid)
static WNGen_End_Serialized_Parallel (ST *gtid)
static WNGen_Master (ST *gtid)
static void Create_Preg_or_Temp (TYPE_ID mtype, char *name, ST **st, WN_OFFSET *ofst)
static WNGen_MP_Load (ST *st, WN_OFFSET offset, BOOL scalar_only=FALSE)
static WNGen_Barrier (ST *gtid)
static WNGen_Critical (ST *gtid, ST *lck)
static WNGen_End_Critical (ST *gtid, ST *lck)
static WNGen_Ordered (ST *gtid)
static WNGen_End_Ordered (ST *gtid)
static WNGen_End_Master (ST *gtid)
static WNGen_Single (WN *constructnum, ST *gtid, BOOL is_omp)
static WNGen_End_Single (WN *constructnum, ST *gtid, BOOL is_omp, BOOL nowait)
static WNGen_Flush (ST *flush_var, WN_OFFSET flush_offset)
static void Push_Some_Globals ()
static void Pop_Some_Globals ()
static void Init_PU_Globals ()
static void Add_DST_variable (ST *st, DST_INFO_IDX parent_dst, INT64 line_number, DST_INFO_IDX type_idx)
DST_IDX Find_DST_From_ST (ST *st, PU_Info *pu_info)
void Create_New_DST (DST_INFO_IDX dst, ST *st, BOOL append_to_nested)
static void Create_Func_DST (char *st_name)
static BOOL Identical_Pragmas (WN *wn1, WN *wn2)
static void Create_Temp (TYPE_ID mtype, const char *name, ST **st)
static WNGen_MP_Store (ST *st, WN_OFFSET offset, WN *value, BOOL scalar_only=FALSE)
static void Create_MicroTask (PAR_FUNC_TYPE func_type)
static void Create_Preg_or_Temp (TYPE_ID mtype, const char *name, ST **st, WN_OFFSET *ofst)
static BOOL Is_Master_Test (WN *tree)
static BOOL Is_Single_Test (WN *tree)
static void Enter_Guarded_WNs (WN_TO_BOOL_HASH *guarded_set, WN *tree, BOOL tree_is_guarded=FALSE)
static void Gather_Uplevel_References (WN *block, INT32 level, WN *parent, WN *grandparent, WN *tree, WN_TO_BOOL_HASH *guarded_set)
static void Walk_and_Info_Pregs (WN *tree)
static void Walk_and_Replace_Pregs (WN *tree)
static LABEL_IDX Translate_Label (LABEL_IDX plabel_idx)
static BOOL Is_Kind_Array (const ST *st)
static BOOL TY_All_Bounds_Defined (TY_IDX arr_ty)
static WNCalculate_Array_Size (ST *st, TY_IDX ty)
static WNGen_Auto_Alloca (ST *st, WN_OFFSET offset, TY_IDX ty, WN *size)
static void Gather_Inner_Scope_Vlas (WN *wn)
static BOOL Vla_Needs_Alloca (ST *st)
static void Localize_Variable (VAR_TABLE *v, VAR_TYPE vtype, OPERATOR opr, WN *vtree, ST *old_st, WN_OFFSET old_offset, WN **firstprivate_blockp, WN **alloca_blockp, VAR_TABLE *prev_def)
static void Verify_No_Pregs_In_Tree (WN *tree)
static void Create_Local_Variables (VAR_TABLE *vtab, WN *reductions, WN *lastlocals, WN *locals, WN *firstprivates, WN **firstprivate_blockp, WN *lastthread, WN **alloca_blockp)
static OPCODE Make_Final_Reduction_Op (OPCODE op)
static void Localize_INITVKIND_SYMOFF (INITV_IDX new_idx, INITV_IDX old_idx, VAR_TABLE *v)
static void Localize_All_INITVKIND_SYMOFFs (INITO_IDX obj_idx, VAR_TABLE *vtab)
static void Process_Exception_Region (WN *node, VAR_TABLE *vtab)
BOOL Is_Nonpod_Finalization_IF (WN *wn, BOOL *is_first_and_last)
static WNWalk_and_Localize (WN *tree, VAR_TABLE *vtab, Localize_Parent_Stack *lps, BOOL is_par_region, WN **non_pod_finalization)
static void Make_Local_Temps (void)
static TY_IDX Lock_Padding_TY ()
static STCreate_Critical_Lock (void)
static STCreate_Unnamed_Critical_Lock (void)
static STCreate_Name_Lock (ST *lock_name)
static void Process_Preg_Temps (WN *tree, BOOL is_region)
static void Transfer_Maps_R (WN_MAP_TAB *parent, WN_MAP_TAB *child, WN *tree, RID *root_rid)
static void Transfer_Maps (WN_MAP_TAB *parent, WN_MAP_TAB *child, WN *tree, RID *root_rid)
static BOOL is_omp_non_pod_copyin (WN *copyin_wn)
static WNGen_MP_Copyin (BOOL is_omp)
static WNcreate_doloop_node (WN *index_id, WN *start, WN *end, WN *step, WN *body, BOOL add_prompf=FALSE)
static WNcreate_doloop (PREG_NUM *index, char *index_name, WN *count, WN *body)
static WNcreate_doloop_nest (PREG_NUM indices[], WN **doloop, WN *sizes[], INT ndim)
INT MP_Reduction_Combine_Cycles (REDUCTION_LIST *rlist, BOOL *using_critical)
static void Gen_MP_Reduction (VAR_TABLE *var_table, INT num_vars, WN **init_block, WN **store_block)
static WNWN_Integer_Cast (WN *tree, TYPE_ID to, TYPE_ID from)
static BOOL Calls_Alloca (WN *tree)
static BOOL ST_Has_Dope_Vector (ST *st)
static WNGen_Save_Stack_Pointer (const char *st_basename, WN **sp_save_stid)
static WNGen_Restore_Stack_Pointer (WN *sp_save_stid, Alloca_Var_List *avlist)
static WNGen_MP_SingleProcess_Block (WN *single_block, BOOL nowait, BOOL is_omp, BOOL is_orphaned)
static WNGen_MP_SingleProcess_Region (WN *single_region)
static WNLower_Master (WN *master_region)
WNGen_OMP_Begin_SPR (MP_process_type mpt)
WNGen_OMP_End_SPR (MP_process_type mpt)
static STNameLock_Find (ST *name)
static void NameLock_Add (ST *name, ST *lock)
static STGet_NameLock_ST (ST *name)
static void Delayed_MP_Translation (WN *tree)
static void Strip_Nested_MP (WN *tree, BOOL pcf_ok)
static void Process_Preamble_Stores (WN *tree, VAR_TABLE *vtab)
static void Cleanup_Ordered (WN *block_wn, WN *wn)
void Create_Vertices (WN *wn, VV_HASH_TABLE *parent_to_child, V_STACK *parent_vertices, ARRAY_DIRECTED_GRAPH16 *parent_graph, ARRAY_DIRECTED_GRAPH16 *child_graph)
void MP_Fix_Dependence_Graph (PU_Info *parent_pu_info, PU_Info *child_pu_info, WN *child_wn)
static WNFind_Non_POD_Finalization_Code (WN *wn, WN **final_if_parent)
static void Move_Non_POD_Finalization_Code_Rec (WN *wn)
static void Find_And_Move_Finalization_Code (WN *parent, WN *do_wn)
void Move_Non_POD_Finalization_Code (WN *block)
static WNCopy_Non_MP_Tree_Rec (WN *tree, V_STACK *mp_vertices, VV_HASH_TABLE *mp_to_nonmp)
WNCopy_Non_MP_Tree (WN *tree)
static void Standardize_Do (WN *do_tree)
static void Extract_Do_Info (WN *do_tree)
static WNRewrite_Do_New (WN *do_tree, ST *lower, ST *upper, ST *stride)
static WNTransform_Do (WN *do_tree, SCHEDULE_TYPE schedule, WN *chunk_size)
static void Rewrite_Do (WN *do_tree)
static void Scale_FB_Parallel_Do (WN *do_loop, float fraction_per_thread)
static WNProcess_PDO (WN *pdo_tree)
static void Transform_Parallel_Block (WN *tree)
SCHEDULE_TYPE Translate_Schedule_Type (int mp_SchedType, BOOL ordered)
static void Process_Parallel_Do (void)
static void Process_Parallel_Region (void)
static void Localize_in_serialized_parallel (void)
WNlower_mp (WN *block, WN *node, INT32 actions)
void LowerMP_PU_Init ()
BOOL WN_has_pragma_with_side_effect (WN *wn)

Variables

static DST_INFO_IDX nested_dst
static const mINT32 NUM_HASH_ELEMENTS = 1021
static BOOL first_call = TRUE
static MEM_POOL mp_lower_pool
static WNstmt_block
static WNserial_stmt_block
static WNcont_nodes
static WNdo_node
static WNreplace_block
static WNntrip_calc
static WNlivein_block
static WNalloca_block
static WNcopyin_block
static WNcopyout_block
static WNfirstprivate_block
static WNliveout_block
static WNdo_prefix
static WNdo_suffix
static WNif_preamble_block
static WNif_postamble_block
static WNdo_preamble_block
static INT64 line_number
static STparallel_proc
static STlocal_start
static STlocal_ntrip
static STthread_info
static STlocal_upper = NULL
static STlocal_lower = NULL
static STlocal_stride = NULL
static STlast_iter
static STlocal_limit
static STlimit_st
static WN_OFFSET limit_ofst
static STlocal_gtid
static STlocal_btid
static WNbase_node
static WNlimit_node = NULL
static WNntrip_node
static WNstride_node
static WNparallel_func
static FEEDBACKparallel_pu_fb
static WNreference_block
static INT32 func_level
static STdo_index_st
static TYPE_ID do_index_type
static BOOL fast_doacross
static INT32 copyin_count
static INT32 local_count
static INT32 reduction_count
static INT32 shared_count
static WNaffinity_nodes
static WNaffinity_d_nodes
static WNaffinity_t_nodes
static WNchunk_node
static WNcopyin_nodes
static WNcopyin_nodes_end
static WNif_node
static WNlastlocal_nodes
static WNlastthread_node
static WNlocal_nodes
static WNfirstprivate_nodes
static WNnon_pod_finalization_nodes
static BOOL non_pod_first_and_lastprivate
static WNmpnum_node
static WNmpsched_node
static WNnumthreads_node
static WNordered_node
static WNdo_order_lb = NULL
static WNdo_order_stride = NULL
static WNreduction_nodes
static WNshared_nodes
static INT32 num_constructs
static INT32 nested_local_count
static INT32 nested_reduction_count
static WNnested_affinity_nodes
static WNnested_affinity_d_nodes
static WNnested_affinity_t_nodes
static WNnested_chunk_node
static WNnested_lastlocal_nodes
static WNnested_lastthread_node
static WNnested_local_nodes
static WNnested_firstprivate_nodes
static WNnested_mpsched_node
static WNnested_nowait_node
static WNnested_ordered_node
static WNnested_do_order_lb = NULL
static WNnested_do_order_stride = NULL
static WNnested_reduction_nodes
static WNnested_shared_nodes
static VAR_TABLEvar_table
static VAR_TABLEnested_var_table
PREG_INFO_TABLEpreg_info_table
static LABEL_INFO_TABLElabel_info_table
static SHARED_TABLEshared_table
static MPID_TABLEmpid_table
static INT32 mpid_size = 0
static TY_IDX mpdo32_ty = TY_IDX_ZERO
static TY_IDX mpdo64_ty = TY_IDX_ZERO
static TY_IDX mpregion_ty = TY_IDX_ZERO
static TY_IDX mpruntime_ty = TY_IDX_ZERO
static ST_IDX last_pu_proc_sym = ST_IDX_ZERO
static INT32 do_id = 0
static INT32 region_id = 0
static INT32 lock_id = 0
static WNpu_chunk_node = NULL
static WNpu_mpsched_node = NULL
static STmpbase_st = NULL
static STmptrips_st = NULL
static STmpflags_st = NULL
static BOOL pu_has_eh = FALSE
static SYMTAB_IDX psymtab
static SYMTAB_IDX csymtab
static PU_Infoppuinfo
static WN_MAP_TABpmaptab
static WN_MAP_TABcmaptab
static BOOL pu_has_alloca
static BOOL pu_has_region
static BOOL inside_versioning_if
static BOOL comp_gen_construct
static MP_process_type mpt
static STgtid_st = NULL
static TY_IDX lock_ty_idx = TY_IDX_ZERO
static STold_gtid_st = NULL
static STunnamed_lock_st = NULL
static BOOL critical_lock_not_init = TRUE
static const char * mpr_names [MPRUNTIME_LAST+1]
static ST_IDX mpr_sts [MPRUNTIME_LAST+1]
Verify_MP_Loweredverify_mp_lowered_ptr
static vector< ST * > inner_scope_vla
static const char *const dope_str_prefix = ".dope."
static const INT dope_str_prefix_len = 6
static struct namelock_kindnamelock_list
static INT32 nl_idx = 0
static INT32 nl_max = 0
static MEM_POOL MP_Dep_Pool
static BOOL mp_dep_pool_initialized


Define Documentation

#define __STDC_LIMIT_MACROS

Definition at line 43 of file wn_mp.cxx.

#define csc_debug (  )     csc_printf(x,__LINE__)

Definition at line 178 of file wn_mp.cxx.

#define GET_MPRUNTIME_ST (  ) 

#define GET_RETURN_PREGS ( rreg1,
rreg2,
type   )     my_Get_Return_Pregs(&rreg1, &rreg2, type, __FILE__, __LINE__)

#define IS_MASTER_PREG_NAME   "mp_is_master"

Definition at line 820 of file wn_mp.cxx.

Referenced by Is_Master_Test(), and Lower_Master().

#define MAX_NDIM   7

#define MPSP_STATUS_PREG_NAME   "mpsp_status"

Definition at line 819 of file wn_mp.cxx.

Referenced by Gen_MP_SingleProcess_Block(), and Is_Single_Test().

#define OMP_NON_POD_FIRST_AND_LASTLOCAL_FLAG_NAME   "__omp_non_pod_first_and_lastlocal"

Definition at line 4823 of file wn_mp.cxx.

Referenced by Is_Nonpod_Finalization_IF().

#define OMP_NON_POD_LASTLOCAL_FLAG_NAME   "__omp_non_pod_lastlocal"

Definition at line 4822 of file wn_mp.cxx.

Referenced by Is_Nonpod_Finalization_IF().

#define STACK_CHUNK   10

Referenced by Copy_Non_MP_Tree_Rec().

#define USE_STANDARD_TYPES

Definition at line 60 of file wn_mp.cxx.

#define WN_Compare_Trees ( x,
 )     (WN_Simp_Compare_Trees(x,y))

Definition at line 162 of file wn_mp.cxx.

Referenced by Identical_Pragmas(), Process_Preamble_Stores(), and Walk_and_Localize().


Typedef Documentation

Definition at line 433 of file wn_mp.cxx.

typedef INT32 MPID_TABLE

Definition at line 437 of file wn_mp.cxx.

Definition at line 592 of file wn_mp.cxx.

typedef ST* SHARED_TABLE

Definition at line 435 of file wn_mp.cxx.

Definition at line 8156 of file wn_mp.cxx.

Definition at line 8155 of file wn_mp.cxx.

Definition at line 439 of file wn_mp.cxx.


Enumeration Type Documentation

enum MPRUNTIME

Enumerator:
MPRUNTIME_NONE 
MPRUNTIME_FIRST 
MPR_SETUP 
MPR_CLEANUP 
MPR_GETLOCK 
MPR_UNLOCK 
MPR_BARRIER 
MPR_SETLOCK 
MPR_UNSETLOCK 
MPR_COPYIN 
MPR_PARALLEL_DO_32 
MPR_PARALLEL_DO_64 
MPR_PARALLEL_REGION 
MPR_BEGIN_PDO_32 
MPR_BEGIN_PDO_64 
MPR_NEXT_ITERS_32 
MPR_NEXT_ITERS_64 
MPR_END_PDO 
MPR_BEGIN_SINGLE_PROCESS 
MPR_END_SINGLE_PROCESS 
MPR_ENTER_GATE 
MPR_EXIT_GATE 
MPR_BEGIN_INDEPENDENT 
MPR_END_INDEPENDENT 
MPR_MY_THREADNUM 
MPR_OMP_PARALLEL_REGION 
MPR_OMP_BEGIN_SPR 
MPR_OMP_END_SPR 
MPR_OMP_PARALLEL_DO_32 
MPR_OMP_PARALLEL_DO_64 
MPR_OMP_BEGIN_PDO_64 
MPR_OMP_NEXT_ITERS_64 
MPR_OMP_END_PDO 
MPR_OMP_BEGIN_SINGLE_PROCESS 
MPR_OMP_END_SINGLE_PROCESS 
MPR_OMP_BARRIER_OLD 
MPR_OMP_PDO_ORDERED_BEGIN 
MPR_OMP_PDO_ORDERED_END 
MPR_OMP_ORDERED_BEGIN_OLD 
MPR_OMP_ORDERED_END_OLD 
MPR_OMP_COPYIN 
MPR_OMP_NONPOD_COPYIN 
MPR_OMP_NONPOD_ARRAY_COPYIN 
MPR_OMP_IN_PARALLEL 
MPR_OMP_CAN_FORK 
MPR_OMP_SET_NUM_THREADS 
MPR_OMP_INIT_RTL 
MPR_OMP_FINI_RTL 
MPR_OMP_SERIALIZED_PARALLEL 
MPR_OMP_END_SERIALIZED_PARALLEL 
MPR_OMP_GET_THREAD_NUM 
MPR_OMP_GET_NUM_THREADS 
MPR_OMP_FORK 
MPR_OMP_STATIC_INIT_4 
MPR_OMP_STATIC_INIT_8 
MPR_OMP_STATIC_FINI 
MPR_OMP_SCHEDULER_INIT_4 
MPR_OMP_SCHEDULER_INIT_8 
MPR_OMP_SCHEDULER_NEXT_4 
MPR_OMP_SCHEDULER_NEXT_8 
MPR_OMP_SINGLE 
MPR_OMP_END_SINGLE 
MPR_OMP_MASTER 
MPR_OMP_END_MASTER 
MPR_OMP_BARRIER 
MPR_OMP_CRITICAL 
MPR_OMP_END_CRITICAL 
MPR_OMP_ORDERED 
MPR_OMP_END_ORDERED 
MPR_OMP_FLUSH 
MPRUNTIME_LAST 

Definition at line 234 of file wn_mp.cxx.

Enumerator:
PAR_FUNC_NONE 
PAR_FUNC_DO32 
PAR_FUNC_DO64 
PAR_FUNC_REGION 
PAR_FUNC_LAST 

Definition at line 366 of file wn_mp.cxx.

enum PREG_CLASS

Enumerator:
PCLASS_UNKNOWN 
PCLASS_DEADIN_DEADOUT 
PCLASS_COPYIN_DEADOUT 
PCLASS_DEADIN_COPYOUT 
PCLASS_COPYIN_COPYOUT 
PCLASS_LIVEIN_DEADOUT 
PCLASS_DEADIN_LIVEOUT 
PCLASS_LIVEIN_LIVEOUT 

Definition at line 410 of file wn_mp.cxx.

Enumerator:
OMP_SCHED_UNKNOWN 
OMP_SCHED_STATIC 
OMP_SCHED_STATIC_EVEN 
OMP_SCHED_DYNAMIC 
OMP_SCHED_GUIDED 
OMP_SCHED_RUNTIME 
OMP_SCHED_ORDERED_STATIC 
OMP_SCHED_ORDERED_STATIC_EVEN 
OMP_SCHED_ORDERED_DYNAMIC 
OMP_SCHED_ORDERED_GUIDED 
OMP_SCHED_ORDERED_RUNTIME 
OMP_SCHED_NORMAL_FIRST 
OMP_SCHED_NORMAL_LAST 
OMP_SCHED_ORDERED_FIRST 
OMP_SCHED_ORDERED_LAST 

Definition at line 345 of file wn_mp.cxx.

enum VAR_TYPE

Enumerator:
VAR_NONE 
VAR_LASTLOCAL 
VAR_LOCAL 
VAR_FIRSTPRIVATE 
VAR_REDUCTION_SCALAR 
VAR_REDUCTION_ARRAY 
VAR_REDUCTION_ARRAY_OMP 

Definition at line 374 of file wn_mp.cxx.


Function Documentation

static void Add_DST_variable ( ST st,
DST_INFO_IDX  parent_dst,
INT64  line_number,
DST_INFO_IDX  type_idx 
) [static]

static WN* Calculate_Array_Size ( ST st,
TY_IDX  ty 
) [static]

static BOOL Calls_Alloca ( WN tree  )  [static]

static void Cleanup_Ordered ( WN block_wn,
WN wn 
) [static]

WN* Copy_Non_MP_Tree ( WN tree  ) 

Definition at line 8416 of file wn_mp.cxx.

Referenced by lower_mp().

static WN * Copy_Non_MP_Tree_Rec ( WN tree,
V_STACK mp_vertices,
VV_HASH_TABLE mp_to_nonmp 
) [static]

static ST* Create_Critical_Lock ( void   )  [static]

static WN* create_doloop ( PREG_NUM index,
char *  index_name,
WN count,
WN body 
) [static]

static WN* create_doloop_nest ( PREG_NUM  indices[],
WN **  doloop,
WN sizes[],
INT  ndim 
) [static]

Definition at line 6372 of file wn_mp.cxx.

References create_doloop(), index(), INT, num_temps, sprintf(), and WN_CreateBlock.

Referenced by Gen_MP_Reduction(), and lower_pack().

static WN* create_doloop_node ( WN index_id,
WN start,
WN end,
WN step,
WN body,
BOOL  add_prompf = FALSE 
) [static]

Definition at line 6270 of file wn_mp.cxx.

References line_number, NULL, WN_CreateDO, and WN_Set_Linenum().

Referenced by create_doloop(), and lower_eoshift().

static void Create_Func_DST ( char *  st_name  )  [static]

static ST* Create_Gtid_ST ( void   )  [static]

static void Create_Local_Variables ( VAR_TABLE vtab,
WN reductions,
WN lastlocals,
WN locals,
WN firstprivates,
WN **  firstprivate_blockp,
WN lastthread,
WN **  alloca_blockp 
) [static]

static void Create_Lock_Type (  )  [static]

static void Create_MicroTask ( PAR_FUNC_TYPE  func_type  )  [static]

Definition at line 2552 of file wn_mp.cxx.

References Add_DST_variable(), alloca, Allocate_Object(), Be_Type_Tbl, BOOL, CLASS_FUNC, CLASS_VAR, Create_Func_DST(), Create_Temp(), csymtab, Cur_PU_Feedback, Current_Map_Tab, Current_pu, Current_PU_Info, CURRENT_SYMTAB, CXX_NEW, do_id, DST_INVALID_IDX, EXPORT_LOCAL, Fail_FmtAssertion(), FALSE, FB_Transfer(), File_info, func_level, Gen_MP_Store(), Gen_Temp_Symbol(), GLOBAL_SYMTAB, INT, INT32, Is_True, KIND_FUNCTION, KIND_POINTER, line_number, Malloc_Mem_Pool, MEM_pu_nz_pool_ptr, MEM_pu_pool_ptr, mpid_table, mpregion_ty, MTYPE_I4, MTYPE_To_TY, MTYPE_UNKNOWN, MTYPE_V, New_PREG(), New_PU(), New_Scope(), New_ST(), New_TY(), New_TYLIST(), NULL, OPC_PRAGMA, PAR_FUNC_DO32, PAR_FUNC_DO64, PAR_FUNC_REGION, Pointer_Mtype, Pointer_Size, Pointer_type, PREG_name_idx(), PREG_Table_Size(), psymtab, pu, PU_c_lang(), PU_cxx_lang(), PU_f77_lang(), PU_f90_lang(), PU_Info_child, PU_Info_init(), PU_Info_maptab, PU_Info_next, PU_Info_proc_sym, PU_Info_pu_dst, PU_Info_regions_ptr, PU_Info_state, PU_Info_tree_ptr, PU_Init(), PU_IS_COMPILER_GENERATED, PU_java_lang(), PU_mp(), RID_Create(), RID_type, RID_TYPE_func_entry, Save_Local_Symtab(), Save_Str(), SCLASS_FORMAL, SCLASS_TEXT, Scope_tab, Set_FILE_INFO_has_mp(), Verify_MP_Lowered::Set_nested_pu_tree(), Set_PREG_name_idx(), Set_PU_c_lang(), Set_PU_cxx_lang(), Set_PU_f77_lang(), Set_PU_f90_lang(), Set_PU_Info_feedback_ptr, Set_PU_Info_flags, Set_PU_Info_regions_ptr, Set_PU_Info_state, Set_PU_Info_symtab_ptr, Set_PU_Info_tree_ptr, Set_PU_is_nested_func(), Set_PU_java_lang(), Set_PU_lexical_level(), Set_PU_mp(), Set_PU_no_inline(), Set_ST_addr_passed(), Set_ST_is_value_parm, Set_TY_align, Set_TY_pointed(), Set_TY_tylist(), Set_TYLIST_type(), sprintf(), SCOPE::st, ST_Init(), ST_name, ST_st_idx, ST_type, strlen(), Subsect_InMem, Subsect_Missing, TRUE, TY_IDX_ZERO, TY_Init(), TYPE_MEM_POOL_ALLOC, UINT32, WN_CreateBlock, WN_CreateEntry, WN_CreateIdname, WN_CreatePragma, WN_first(), WN_func_pragmas, WN_INSERT_BlockLast, WN_kid0(), WN_kid1(), WN_Ldid(), WN_linenum(), WN_MAP_TAB_Create(), WN_next(), WN_opcode(), WN_pragma(), WN_pragma_arg1(), WN_pragma_arg2(), WN_PRAGMA_THREADPRIVATE, WN_st_idx(), WT_FEEDBACK, WT_PROC_SYM, WT_SYMTAB, and WT_TREE.

Referenced by Process_Parallel_Do(), and Process_Parallel_Region().

static ST* Create_Name_Lock ( ST lock_name  )  [static]

void Create_New_DST ( DST_INFO_IDX  dst,
ST st,
BOOL  append_to_nested 
)

static void Create_Preg_or_Temp ( TYPE_ID  mtype,
const char *  name,
ST **  st,
WN_OFFSET ofst 
) [static]

static void Create_Preg_or_Temp ( TYPE_ID  mtype,
char *  name,
ST **  st,
WN_OFFSET ofst 
) [static]

static void Create_Temp ( TYPE_ID  mtype,
const char *  name,
ST **  st 
) [static]

static ST* Create_Unnamed_Critical_Lock ( void   )  [static]

void Create_Vertices ( WN wn,
VV_HASH_TABLE parent_to_child,
V_STACK parent_vertices,
ARRAY_DIRECTED_GRAPH16 parent_graph,
ARRAY_DIRECTED_GRAPH16 child_graph 
)

void csc_printf ( const char *  what,
INT  line 
)

Definition at line 173 of file wn_mp.cxx.

References printf().

static void Delayed_MP_Translation ( WN tree  )  [static]

static void Enter_Guarded_WNs ( WN_TO_BOOL_HASH guarded_set,
WN tree,
BOOL  tree_is_guarded = FALSE 
) [static]

static void Extract_Do_Info ( WN do_tree  )  [static]

static void Find_And_Move_Finalization_Code ( WN parent,
WN do_wn 
) [static]

DST_IDX Find_DST_From_ST ( ST st,
PU_Info pu_info 
)

static WN * Find_Non_POD_Finalization_Code ( WN wn,
WN **  final_if_parent 
) [static]

static void Gather_Inner_Scope_Vlas ( WN wn  )  [static]

static void Gather_Uplevel_References ( WN block,
INT32  level,
WN parent,
WN grandparent,
WN tree,
WN_TO_BOOL_HASH guarded_set 
) [static]

static WN* Gen_Auto_Alloca ( ST st,
WN_OFFSET  offset,
TY_IDX  ty,
WN size 
) [static]

static WN * Gen_Barrier ( ST gtid  )  [static]

static WN* Gen_Can_Fork ( void   )  [static]

static WN* Gen_Critical ( ST gtid,
ST lck 
) [static]

static WN* Gen_End_Critical ( ST gtid,
ST lck 
) [static]

static WN* Gen_End_Master ( ST gtid  )  [static]

static WN* Gen_End_Ordered ( ST gtid  )  [static]

static WN* Gen_End_Serialized_Parallel ( ST gtid  )  [static]

static WN* Gen_End_Single ( WN constructnum,
ST gtid,
BOOL  is_omp,
BOOL  nowait 
) [static]

static WN* Gen_Fini_RTL (  )  [static]

static WN* Gen_Flush ( ST flush_var,
WN_OFFSET  flush_offset 
) [static]

static WN* Gen_Fork ( ST proc,
WN nThreads 
) [static]

static WN* Gen_Get_Num_Threads (  )  [static]

static WN* Gen_Get_Thread_Num (  )  [static]

static WN* Gen_In_Parallel ( void   )  [static]

static WN* Gen_Init_RTL (  )  [static]

static WN * Gen_Master ( ST gtid  )  [static]

static WN* Gen_MP_Copyin ( BOOL  is_omp  )  [static]

static WN * Gen_MP_Load ( ST st,
WN_OFFSET  offset,
BOOL  scalar_only = FALSE 
) [static]

static WN * Gen_MP_Load_Store ( ST from_st,
WN_OFFSET  from_offset,
ST to_st,
WN_OFFSET  to_offset,
BOOL  is_dynamic 
) [static]

static void Gen_MP_Reduction ( VAR_TABLE var_table,
INT  num_vars,
WN **  init_block,
WN **  store_block 
) [static]

static WN* Gen_MP_SingleProcess_Block ( WN single_block,
BOOL  nowait,
BOOL  is_omp,
BOOL  is_orphaned 
) [static]

static WN* Gen_MP_SingleProcess_Region ( WN single_region  )  [static]

static WN * Gen_MP_Store ( ST st,
WN_OFFSET  offset,
WN value,
BOOL  scalar_only = FALSE 
) [static]

WN* Gen_OMP_Begin_SPR ( MP_process_type  mpt  ) 

WN* Gen_OMP_End_SPR ( MP_process_type  mpt  ) 

static WN* Gen_Ordered ( ST gtid  )  [static]

static WN* Gen_Restore_Stack_Pointer ( WN sp_save_stid,
Alloca_Var_List avlist 
) [static]

static WN* Gen_Save_Stack_Pointer ( const char *  st_basename,
WN **  sp_save_stid 
) [static]

static WN* Gen_Serialized_Parallel ( ST gtid  )  [static]

static WN* Gen_Set_Num_Threads ( ST gtid,
WN nThreads 
) [static]

static WN* Gen_Single ( WN constructnum,
ST gtid,
BOOL  is_omp 
) [static]

static WN* Gen_Store_Gtid (  )  [static]

static WN* Get_Gtid ( ST gtid  )  [static]

static ST* Get_NameLock_ST ( ST name  )  [static]

static BOOL Identical_Pragmas ( WN wn1,
WN wn2 
) [static]

static void Init_PU_Globals (  )  [static]

Definition at line 1981 of file wn_mp.cxx.

References NULL.

Referenced by LowerMP_PU_Init().

static BOOL Is_Kind_Array ( const ST st  )  [static]

static BOOL Is_Master_Test ( WN tree  )  [static]

static BOOL Is_NameLock_ST ( ST st  )  [static]

Definition at line 7657 of file wn_mp.cxx.

References FALSE, ST_name, and strncmp().

Referenced by Gather_Uplevel_References().

BOOL Is_Nonpod_Finalization_IF ( WN wn,
BOOL is_first_and_last 
)

static BOOL is_omp_non_pod_copyin ( WN copyin_wn  )  [static]

Definition at line 5873 of file wn_mp.cxx.

References CLASS_FUNC, FALSE, OPC_XPRAGMA, ST_sym_class(), WN_kid0(), WN_opcode(), WN_pragma_omp, and WN_st().

Referenced by Gen_MP_Copyin().

static BOOL Is_Single_Test ( WN tree  )  [static]

static void Localize_All_INITVKIND_SYMOFFs ( INITO_IDX  obj_idx,
VAR_TABLE vtab 
) [static]

static void Localize_in_serialized_parallel ( void   )  [static]

Definition at line 11758 of file wn_mp.cxx.

References alloca, BZERO, Create_Local_Variables(), FALSE, INT32, local_count, NULL, and Walk_and_Localize().

Referenced by lower_mp().

static void Localize_INITVKIND_SYMOFF ( INITV_IDX  new_idx,
INITV_IDX  old_idx,
VAR_TABLE v 
) [static]

static void Localize_Variable ( VAR_TABLE v,
VAR_TYPE  vtype,
OPERATOR  opr,
WN vtree,
ST old_st,
WN_OFFSET  old_offset,
WN **  firstprivate_blockp,
WN **  alloca_blockp,
VAR_TABLE prev_def 
) [static]

Definition at line 3566 of file wn_mp.cxx.

References alloca, BOOL, Calculate_Array_Size(), CLASS_PREG, CLASS_VAR, comp_gen_construct, Create_New_DST(), Current_PU_Info, CURRENT_SYMTAB, Debug_Level, dst, DST_INVALID_IDX, DST_IS_NULL, EC_MPLOWER_priv_equiv, EC_MPLOWER_red_not_found, ErrMsg(), EXPORT_LOCAL, Fail_FmtAssertion(), FALSE, Find_DST_From_ST(), FLD_type, FOREACH_SYMBOL, Gen_Auto_Alloca(), Gen_MP_Load_Store(), Get_Current_PU, Has_Base_Block, VAR_TABLE::has_offset, INT, INT16, VAR_TABLE::is_dynamic_array, VAR_TABLE::is_last_and_firstprivate, VAR_TABLE::is_non_pod, VAR_TABLE::is_static_array, Is_True, KIND_ARRAY, KIND_POINTER, KIND_STRUCT, MPP_ORPHANED_PDO, MPP_ORPHANED_SINGLE, MPP_PARALLEL_REGION, MPP_PDO, MPP_SINGLE, mpt, VAR_TABLE::mtype, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_V, VAR_TABLE::new_offset, VAR_TABLE::new_st, New_ST(), NULL, OPC_PRAGMA, OPC_U4ARRAY, OPC_U8ARRAY, OPCODE_make_op(), OPCODE_UNKNOWN, OPERATOR_UNKNOWN, OPR_CAND, OPR_CIOR, OPR_EQ, OPR_LAND, OPR_LIOR, OPR_NE, VAR_TABLE::orig_offset, VAR_TABLE::orig_st, Pointer_Size, Pointer_type, Promote_Type(), PU_F77_LANG, PU_F90_LANG, PU_Info_tree_ptr, PU_src_lang, VAR_TABLE::reduction_opc, VAR_TABLE::reduction_opr, Save_Str(), SCLASS_AUTO, SCLASS_FORMAL, Set_ST_addr_passed(), Set_ST_addr_saved(), Set_ST_pt_to_compiler_generated_mem(), Set_ST_pt_to_unique_mem, sprintf(), ST_addr_passed(), ST_addr_saved(), ST_btype, ST_class, ST_Init(), ST_is_equivalenced, ST_keep_name_w2f, ST_name, ST_ptr(), ST_sclass, ST_st_idx, ST_type, strcmp(), strlen(), strncmp(), sym, TRUE, VAR_TABLE::ty, TY_All_Bounds_Defined(), TY_AR_etype, TY_etype, TY_fld, TY_is_non_pod(), TY_kind, TY_mtype, TY_pointed, TY_size, TYPE_ID, VAR_FIRSTPRIVATE, VAR_LASTLOCAL, VAR_LOCAL, VAR_REDUCTION_ARRAY, VAR_REDUCTION_ARRAY_OMP, VAR_REDUCTION_SCALAR, Vla_Needs_Alloca(), VAR_TABLE::vtree, VAR_TABLE::vtreex, VAR_TABLE::vtype, WN_COPY_Tree(), WN_Create(), WN_CreateBlock, WN_element_size(), WN_first(), WN_func_pragmas, WN_INSERT_BlockLast, WN_Intconst(), WN_kid0(), WN_kid1(), WN_kid2(), WN_next(), WN_opcode(), WN_pragma(), WN_pragma_arg1(), WN_PRAGMA_THREADPRIVATE, and WN_RLdid().

Referenced by Create_Local_Variables().

static TY_IDX Lock_Padding_TY (  )  [static]

static WN* Lower_Master ( WN master_region  )  [static]

WN* lower_mp ( WN block,
WN node,
INT32  actions 
)

Definition at line 11777 of file wn_mp.cxx.

References alloca, BOOL, BZERO, CLASS_PREG, Cleanup_Ordered(), comp_gen_construct, Copy_Non_MP_Tree(), copyin_count, Create_Preg_or_Temp(), Create_Unnamed_Critical_Lock(), csymtab, Current_Map_Tab, Current_PU_Info, CURRENT_SYMTAB, do_index_type, Fail_FmtAssertion(), FALSE, fast_doacross, first_call, FmtAssert, fp, Frame_Pointer_Preg_Offset, Gen_Barrier(), Gen_Can_Fork(), Gen_Critical(), Gen_End_Critical(), Gen_End_Ordered(), Gen_End_Serialized_Parallel(), Gen_Fork(), Gen_In_Parallel(), Gen_MP_Copyin(), Gen_MP_Load(), Gen_MP_SingleProcess_Region(), Gen_MP_Store(), Gen_Ordered(), Gen_Serialized_Parallel(), Gen_Store_Gtid(), Get_Current_PU, Get_NameLock_ST(), GET_RETURN_PREGS, Identical_Pragmas(), inside_versioning_if, INT32, Is_True, KIND_SCALAR, label_info_table, LABEL_Table_Size(), last_pu_proc_sym, line_number, local_count, Localize_in_serialized_parallel(), Lower_Master(), LOWER_MP, malloc, MEM_POOL_Initialize, Move_Non_POD_Finalization_Code(), mpid_size, mpid_table, MPP_COPYIN, MPP_CRITICAL_SECTION, MPP_ORPHANED_MASTER, MPP_ORPHANED_PDO, MPP_ORPHANED_SINGLE, MPP_PARALLEL_DO, MPP_PARALLEL_REGION, MPP_UNKNOWN, mpt, MTYPE_byte_size, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_U1, MTYPE_U2, MTYPE_U4, non_pod_first_and_lastprivate, NULL, num_constructs, OPC_DO_LOOP, OPC_DO_WHILE, OPC_I4INTCONST, OPC_IF, OPC_PRAGMA, OPC_REGION, OPC_WHILE_DO, OPC_XPRAGMA, OPCODE_name(), OPR_DO_LOOP, OPR_LDA, OPR_STID, p, Pointer_type, printf(), Process_Parallel_Do(), Process_Parallel_Region(), Process_PDO(), psymtab, pu_has_eh, PU_has_exc_scopes(), PU_Info_proc_sym, PUSER_MP, reduction_count, RID_Delete(), Set_Error_Line(), Verify_MP_Lowered::Set_nested_pu_tree(), Verify_MP_Lowered::Set_replace_block(), Verify_MP_Lowered::Set_replace_block_and_nested_pu(), shared_count, ST_class, ST_Has_Dope_Vector(), ST_type, Strip_Nested_MP(), SYMTAB_IDX_ZERO, TRUE, TY_kind, TY_mtype, WN_CAND, WN_COPY_Tree(), WN_CreateBlock, WN_CreateIf, WN_CreateIntconst, WN_Delete, WN_DELETE_FromBlock(), WN_DELETE_Tree(), WN_else, WN_EQ, WN_first(), WN_Get_Linenum(), WN_GT, WN_if_test, WN_index, WN_INSERT_BlockAfter(), WN_INSERT_BlockBefore(), WN_INSERT_BlockLast, WN_Intconst(), WN_Is_If_MpVersion, WN_kid0(), WN_last(), WN_Ldid(), WN_LdidPreg(), WN_linenum(), WN_next(), WN_opcode(), WN_operator(), WN_pragma(), WN_PRAGMA_AFFINITY, WN_PRAGMA_BARRIER, WN_PRAGMA_CHUNKSIZE, WN_pragma_compiler_generated, WN_PRAGMA_COPYIN, WN_PRAGMA_COPYIN_BOUND, WN_PRAGMA_CRITICAL_SECTION_BEGIN, WN_PRAGMA_CRITICAL_SECTION_END, WN_PRAGMA_DATA_AFFINITY, WN_PRAGMA_DOACROSS, WN_PRAGMA_END_MARKER, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_IF, WN_PRAGMA_LASTLOCAL, WN_PRAGMA_LASTTHREAD, WN_PRAGMA_LOCAL, WN_PRAGMA_MASTER_BEGIN, WN_PRAGMA_MPNUM, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NUMTHREADS, WN_pragma_omp, WN_PRAGMA_ORDERED, WN_PRAGMA_ORDERED_BEGIN, WN_PRAGMA_ORDERED_END, WN_PRAGMA_ORDERED_LOWER_BOUND, WN_PRAGMA_ORDERED_STRIDE, WN_PRAGMA_PARALLEL_BEGIN, WN_PRAGMA_PARALLEL_DO, WN_PRAGMA_PARALLEL_END, WN_PRAGMA_PARALLEL_WORKSHARE, WN_PRAGMA_PDO_BEGIN, WN_PRAGMA_REDUCTION, WN_PRAGMA_SHARED, WN_PRAGMA_SINGLE_PROCESS_BEGIN, WN_PRAGMA_THREAD_AFFINITY, WN_pragmas, WN_prev(), WN_region_body, WN_region_exits, WN_region_pragmas, WN_st(), WN_Stid(), and WN_then.

Referenced by lower_bit_field_id().

void LowerMP_PU_Init ( void   ) 

static OPCODE Make_Final_Reduction_Op ( OPCODE  op  )  [static]

Definition at line 4505 of file wn_mp.cxx.

References MTYPE_V, OPCODE_make_op(), OPCODE_operator(), OPCODE_rtype(), OPR_ADD, OPR_DIV, OPR_MPY, and OPR_SUB.

Referenced by Gen_MP_Reduction().

static void Make_Local_Temps ( void   )  [static]

ST_IDX Make_MPRuntime_ST ( MPRUNTIME  rop  ) 

void Move_Non_POD_Finalization_Code ( WN block  ) 

Definition at line 8303 of file wn_mp.cxx.

Referenced by Copy_Non_MP_Tree_Rec(), lower_mp(), and Strip_Nested_MP().

static void Move_Non_POD_Finalization_Code_Rec ( WN wn  )  [static]

void MP_Fix_Dependence_Graph ( PU_Info parent_pu_info,
PU_Info child_pu_info,
WN child_wn 
)

Definition at line 8166 of file wn_mp.cxx.

Referenced by Process_Parallel_Do(), and Process_Parallel_Region().

INT MP_Reduction_Combine_Cycles ( REDUCTION_LIST rlist,
BOOL using_critical 
)

static void my_Get_Return_Pregs ( PREG_NUM rreg1,
PREG_NUM rreg2,
mTYPE_ID  type,
const char *  file,
INT  line 
) [static]

static void NameLock_Add ( ST name,
ST lock 
) [static]

static ST* NameLock_Find ( ST name  )  [static]

static void Pop_Some_Globals (  )  [static]

Definition at line 1966 of file wn_mp.cxx.

References NULL.

Referenced by Process_Parallel_Do(), and Process_Parallel_Region().

static void Process_Exception_Region ( WN node,
VAR_TABLE vtab 
) [static]

static void Process_Parallel_Do ( void   )  [static]

Definition at line 11278 of file wn_mp.cxx.

References BOOL, Create_Local_Variables(), Create_MicroTask(), Cur_PU_Feedback, Current_Map_Tab, Current_pu, Current_PU_Info, CURRENT_SYMTAB, Delayed_MP_Translation(), EC_MPLOWER_first_last_priv, ErrMsgLine(), Extract_Do_Info(), FALSE, fast_doacross, FmtAssert, func_level, Gather_Inner_Scope_Vlas(), Gather_Uplevel_References(), Gen_MP_Copyin(), Gen_MP_Load(), Gen_MP_Load_Store(), Gen_MP_Reduction(), Gen_MP_Store(), Get_Current_PU, INT32, Is_True, line_number, local_count, Make_Local_Temps(), Malloc_Mem_Pool, MP_Fix_Dependence_Graph(), MPP_PARALLEL_DO, mpt, MTYPE_I4, NOMINAL_PROCS, NULL, NUM_HASH_ELEMENTS, OMP_SCHED_DYNAMIC, OMP_SCHED_NORMAL_FIRST, OMP_SCHED_NORMAL_LAST, OMP_SCHED_ORDERED_DYNAMIC, OMP_SCHED_ORDERED_FIRST, OMP_SCHED_ORDERED_LAST, OMP_SCHED_ORDERED_STATIC_EVEN, OMP_SCHED_STATIC_EVEN, OMP_SCHED_UNKNOWN, OPC_I4INTCONST, PAR_FUNC_DO32, PAR_FUNC_DO64, Pop_Some_Globals(), Process_Preamble_Stores(), Process_Preg_Temps(), psymtab, PU_CXX_LANG, pu_has_alloca, pu_has_region, PU_Info_regions_ptr, PU_misc_info(), PU_src_lang, Pu_Table, Push_Some_Globals(), reduction_count, Scale_FB_Parallel_Do(), Set_PU_has_alloca(), Set_PU_has_region, Set_PU_misc_info(), ST_IDX_ZERO, ST_pu(), Strip_Nested_MP(), Transfer_Maps(), Transform_Do(), Translate_Schedule_Type(), TRUE, VAR_LASTLOCAL, Walk_and_Localize(), WN_COPY_Tree(), WN_CreateBarrier, WN_CreateBlock, WN_CreateIf, WN_CreateIntconst, WN_CreatePragma, WN_CreateReturn, WN_Delete, WN_EQ, WN_EXTRACT_FromBlock(), WN_INSERT_BlockAfter(), WN_INSERT_BlockBefore(), WN_INSERT_BlockFirst, WN_INSERT_BlockLast, WN_Intconst(), WN_kid(), WN_linenum(), WN_next(), WN_offsetx(), WN_pragma_arg1(), WN_PRAGMA_NOWAIT, WN_pragma_omp, WN_PRAGMA_PREAMBLE_END, WN_prev(), WN_st(), and WN_then.

Referenced by lower_mp().

static void Process_Parallel_Region ( void   )  [static]

static WN * Process_PDO ( WN pdo_tree  )  [static]

Definition at line 10321 of file wn_mp.cxx.

References alloca, Alloca_Var_List::Alloca_Var_List(), BOOL, BZERO, Calls_Alloca(), Create_Local_Variables(), Current_Map_Tab, Current_PU_Info, CURRENT_SYMTAB, CXX_DELETE, CXX_NEW, Delayed_MP_Translation(), do_index_type, Extract_Do_Info(), Fail_FmtAssertion(), FALSE, fast_doacross, FmtAssert, Gen_Barrier(), Gen_MP_Load(), Gen_MP_Load_Store(), Gen_MP_Reduction(), Gen_MP_Store(), Gen_Restore_Stack_Pointer(), Gen_Save_Stack_Pointer(), Gen_Store_Gtid(), Get_Current_PU, Identical_Pragmas(), INT32, VAR_TABLE::is_dynamic_array, VAR_TABLE::is_last_and_firstprivate, VAR_TABLE::is_non_pod, Is_True, KIND_SCALAR, last, last_node, line_number, Make_Local_Temps(), MPP_ORPHANED_PDO, MPP_PDO, mpt, MTYPE_byte_size, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_U1, MTYPE_U2, MTYPE_U4, nested_local_count, nested_reduction_count, VAR_TABLE::new_offset, VAR_TABLE::new_st, non_pod_first_and_lastprivate, NULL, OMP_SCHED_DYNAMIC, OMP_SCHED_NORMAL_FIRST, OMP_SCHED_NORMAL_LAST, OMP_SCHED_ORDERED_DYNAMIC, OMP_SCHED_ORDERED_FIRST, OMP_SCHED_ORDERED_LAST, OMP_SCHED_ORDERED_STATIC_EVEN, OMP_SCHED_STATIC_EVEN, OMP_SCHED_UNKNOWN, OPC_DO_LOOP, OPC_DO_WHILE, OPC_I4INTCONST, OPC_PRAGMA, OPC_WHILE_DO, OPC_XPRAGMA, OPCODE_name(), OPR_DO_LOOP, OPR_REGION, VAR_TABLE::orig_offset, VAR_TABLE::orig_st, psymtab, PUSER_MP, REGION_KIND_EH, save_last, Set_PU_has_alloca(), shared_count, ST_Has_Dope_Vector(), ST_type, Strip_Nested_MP(), Transform_Do(), Translate_Schedule_Type(), TRUE, TY_kind, TY_mtype, VAR_LASTLOCAL, void, VAR_TABLE::vtype, Walk_and_Localize(), WN_COPY_Tree(), WN_CreateBarrier, WN_CreateBlock, WN_CreateIf, WN_CreateIntconst, WN_CreatePragma, WN_Delete, WN_DELETE_FromBlock(), WN_DELETE_Tree(), WN_EQ, WN_EXTRACT_FromBlock(), WN_EXTRACT_ItemsFromBlock(), WN_first(), WN_index, WN_INSERT_BlockAfter(), WN_INSERT_BlockBefore(), WN_INSERT_BlockLast, WN_Intconst(), WN_kid(), WN_last(), WN_linenum(), WN_next(), WN_offsetx(), WN_opcode(), WN_operator(), WN_pragma(), WN_PRAGMA_AFFINITY, WN_pragma_arg1(), WN_PRAGMA_CHUNKSIZE, WN_PRAGMA_DATA_AFFINITY, WN_PRAGMA_END_MARKER, WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_LASTLOCAL, WN_PRAGMA_LASTTHREAD, WN_PRAGMA_LOCAL, WN_PRAGMA_MPSCHEDTYPE, WN_PRAGMA_NOWAIT, WN_pragma_omp, WN_PRAGMA_ORDERED, WN_PRAGMA_ORDERED_LOWER_BOUND, WN_PRAGMA_ORDERED_STRIDE, WN_PRAGMA_PDO_BEGIN, WN_PRAGMA_PDO_END, WN_PRAGMA_REDUCTION, WN_PRAGMA_SHARED, WN_PRAGMA_THREAD_AFFINITY, WN_pragmas, WN_prev(), WN_region_body, WN_region_kind(), WN_region_pragmas, WN_st(), and WN_then.

Referenced by lower_mp(), and Transform_Parallel_Block().

static void Process_Preamble_Stores ( WN tree,
VAR_TABLE vtab 
) [static]

static void Process_Preg_Temps ( WN tree,
BOOL  is_region 
) [static]

static TYPE_ID Promote_Type ( TYPE_ID  mtype  )  [inline, static]

Definition at line 202 of file wn_mp.cxx.

References MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_U1, MTYPE_U2, MTYPE_U4, and TYPE_ID.

Referenced by AWN_LdidSym(), canonicalize_if_condition(), Convert_Do_Loops_Conditionals(), Copy_Loads_In_Bound(), ARA_LOOP_INFO::Create_New_IF_Clause(), ARA_LOOP_INFO::Create_Old_IF_Clause(), Create_Shackle_If_Per_Stmt(), Create_Simple_Shackle_Loops(), Execution_Cost_Value(), Finalize_Index_Variable(), Finalize_Index_Variable_For_Remove_Unity_Trip_Loop(), Find_Highest_Type_Of_Loop(), Freeze_Numthreads_Ldid(), Fuse(), Gather_Scatter_Scalar_Expand(), Gen_MP_Load(), Gen_MP_Load_Store(), PF_LG::Gen_Pref_Node(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), Generate_Guard_Test(), Generate_Interleaved_Bounds(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), Get_Array_Dimension_LB(), Get_Array_Dimension_Size(), Handle_Sink_General_Case(), Handle_Sink_Promotion_Case(), Handle_Sink_Symbolic_Non_Promotion_Case(), HMB_Hoist_Expressions(), HMB_Replace_Messy_Bounds(), Initialize_Pdo_Last_Local_Index(), Lego_Skew_Index(), Lego_Skew_Loop(), Localize_Variable(), Matching_Load_Opcode(), Maybe_Handle_Sink_Promotion_Case(), MIR_Replace(), Mp_Collapse_Loop_Heads(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), Perform_Gather_Scatter(), Points_To_For_Array_Star(), Post_loop_peeling(), Process_Preg_Temps(), Process_Store(), Processor_Update_Outer_Tile(), Read_Pragma_Thread_Affinity(), Remove_Floor_From_One_Sided_Cond(), return_upper_bound(), return_upper_boundplus1(), Rewrite_Do(), Rewrite_Do_New(), scalar_rename(), SE_Array(), SE_Findxs(), SE_Identity(), SE_Iload(), SE_Indxs_and_Bounds(), SE_Wrap_Array(), SNL_INV_Cache_Block(), SNL_Opr(), Split_Array(), PF_LOOPNODE::Split_Loops(), Trip_Count(), and Walk_and_Localize().

static void Push_Some_Globals (  )  [static]

Definition at line 1954 of file wn_mp.cxx.

Referenced by Process_Parallel_Do(), and Process_Parallel_Region().

static void Rewrite_Do ( WN do_tree  )  [static]

static WN* Rewrite_Do_New ( WN do_tree,
ST lower,
ST upper,
ST stride 
) [static]

static void Scale_FB_Parallel_Do ( WN do_loop,
float  fraction_per_thread 
) [static]

static WN* Set_Thread_Num ( WN nThreads  )  [static]

static BOOL ST_Has_Dope_Vector ( ST st  )  [static]

static void Standardize_Do ( WN do_tree  )  [static]

Definition at line 8717 of file wn_mp.cxx.

References OPR_GE, OPR_LE, TRUE, WN_end, WN_operator(), and WN_Upper_Bound_Standardize().

Referenced by Extract_Do_Info().

static void Strip_Nested_MP ( WN tree,
BOOL  pcf_ok 
) [static]

static void Transfer_Maps ( WN_MAP_TAB parent,
WN_MAP_TAB child,
WN tree,
RID root_rid 
) [static]

static void Transfer_Maps_R ( WN_MAP_TAB parent,
WN_MAP_TAB child,
WN tree,
RID root_rid 
) [static]

static WN* Transform_Do ( WN do_tree,
SCHEDULE_TYPE  schedule,
WN chunk_size 
) [static]

static void Transform_Parallel_Block ( WN tree  )  [static]

static LABEL_IDX Translate_Label ( LABEL_IDX  plabel_idx  )  [static]

SCHEDULE_TYPE Translate_Schedule_Type ( int  mp_SchedType,
BOOL  ordered 
)

static BOOL TY_All_Bounds_Defined ( TY_IDX  arr_ty  )  [static]

static void Verify_No_Pregs_In_Tree ( WN tree  )  [static]

static BOOL Vla_Needs_Alloca ( ST st  )  [static]

Definition at line 3527 of file wn_mp.cxx.

References FALSE, and TRUE.

Referenced by Localize_Variable().

static void Walk_and_Info_Pregs ( WN tree  )  [static]

static WN* Walk_and_Localize ( WN tree,
VAR_TABLE vtab,
Localize_Parent_Stack lps,
BOOL  is_par_region,
WN **  non_pod_finalization 
) [static]

Definition at line 4905 of file wn_mp.cxx.

References BOOL, Current_PU_Info, STACK< T >::Elements(), Erase_Restricted_Mapping(), Fail_FmtAssertion(), VAR_TABLE::has_offset, INT, INT32, VAR_TABLE::is_dynamic_array, VAR_TABLE::is_non_pod, Is_Nonpod_Finalization_IF(), VAR_TABLE::is_static_array, Is_True, MPP_ORPHANED_PDO, MPP_ORPHANED_SINGLE, mpt, VAR_TABLE::mtype, MTYPE_C4, MTYPE_C8, MTYPE_F4, MTYPE_F8, VAR_TABLE::new_offset, VAR_TABLE::new_st, non_pod_first_and_lastprivate, NULL, OPC_BLOCK, OPC_REGION, OPCODE_has_label(), OPCODE_has_offset(), OPCODE_has_sym(), OPCODE_operator(), OPR_ARRAY, OPR_BACKWARD_BARRIER, OPR_FORWARD_BARRIER, OPR_ILOAD, OPR_ISTORE, OPR_LDA_LABEL, OPR_LDID, OPR_STID, VAR_TABLE::orig_offset, VAR_TABLE::orig_st, Localize_Parent_Stack::parent_stack, Pointer_type, Localize_Parent_Stack::Pop(), Process_Exception_Region(), Promote_Type(), PU_Info_proc_sym, Localize_Parent_Stack::Push(), r, Set_BE_ST_pu_needs_addr_flag_adjust(), Set_LABEL_addr_saved(), ST_st_idx, tmp, STACK< T >::Top_nth(), Translate_Label(), TRUE, VAR_TABLE::ty, VAR_REDUCTION_ARRAY, VAR_TABLE::vtree, VAR_TABLE::vtreex, VAR_TABLE::vtype, WN_Compare_Trees, WN_Delete, WN_DELETE_FromBlock(), WN_DELETE_Tree(), WN_desc(), WN_ereg_supp(), WN_EXTRACT_FromBlock(), WN_first(), WN_kid(), WN_kid0(), WN_kid1(), WN_kid_count(), WN_label_number(), WN_last(), WN_Lda(), WN_linenum(), WN_next(), WN_offsetx(), WN_opcode(), WN_operator(), WN_prev(), WN_RLdid(), WN_rtype(), WN_set_desc(), WN_set_offsetx(), WN_set_rtype(), WN_st(), WN_st_idx(), WN_Stid(), and WN_then.

Referenced by Gen_MP_SingleProcess_Region(), Localize_in_serialized_parallel(), Process_Parallel_Do(), Process_Parallel_Region(), and Process_PDO().

static void Walk_and_Replace_Pregs ( WN tree  )  [static]

BOOL WN_has_pragma_with_side_effect ( WN wn  ) 

static WN* WN_Integer_Cast ( WN tree,
TYPE_ID  to,
TYPE_ID  from 
) [static]

Definition at line 6789 of file wn_mp.cxx.

References OPCODE_make_op(), OPR_CVT, and WN_CreateExp1.

Referenced by Extract_Do_Info(), Rewrite_Do(), Rewrite_Do_New(), and Transform_Do().

WN_OFFSET WN_offsetx ( WN wn  )  [inline]

void WN_set_offsetx ( WN wn,
WN_OFFSET  ofst 
) [inline]


Variable Documentation

WN* affinity_d_nodes [static]

Definition at line 543 of file wn_mp.cxx.

WN* affinity_nodes [static]

Definition at line 542 of file wn_mp.cxx.

WN* affinity_t_nodes [static]

Definition at line 544 of file wn_mp.cxx.

WN* alloca_block [static]

Definition at line 500 of file wn_mp.cxx.

WN* base_node [static]

WN* chunk_node [static]

Definition at line 545 of file wn_mp.cxx.

WN_MAP_TAB* cmaptab [static]

Definition at line 627 of file wn_mp.cxx.

WN* cont_nodes [static]

Definition at line 495 of file wn_mp.cxx.

WN* copyin_block [static]

Definition at line 501 of file wn_mp.cxx.

INT32 copyin_count [static]

Definition at line 537 of file wn_mp.cxx.

Referenced by lower_mp().

WN* copyin_nodes [static]

Definition at line 546 of file wn_mp.cxx.

WN* copyin_nodes_end [static]

Definition at line 547 of file wn_mp.cxx.

WN* copyout_block [static]

Definition at line 502 of file wn_mp.cxx.

BOOL critical_lock_not_init = TRUE [static]

SYMTAB_IDX csymtab [static]

Definition at line 624 of file wn_mp.cxx.

Referenced by Create_MicroTask(), lower_mp(), and Translate_Label().

INT32 do_id = 0 [static]

Definition at line 610 of file wn_mp.cxx.

Referenced by Create_MicroTask(), and LowerMP_PU_Init().

ST* do_index_st [static]

Definition at line 533 of file wn_mp.cxx.

WN* do_node [static]

Definition at line 496 of file wn_mp.cxx.

WN* do_order_lb = NULL [static]

Definition at line 563 of file wn_mp.cxx.

WN* do_order_stride = NULL [static]

Definition at line 564 of file wn_mp.cxx.

WN* do_preamble_block [static]

Definition at line 509 of file wn_mp.cxx.

WN* do_prefix [static]

Definition at line 505 of file wn_mp.cxx.

WN* do_suffix [static]

Definition at line 506 of file wn_mp.cxx.

const char* const dope_str_prefix = ".dope." [static]

Definition at line 6855 of file wn_mp.cxx.

Referenced by ST_Has_Dope_Vector().

const INT dope_str_prefix_len = 6 [static]

Definition at line 6856 of file wn_mp.cxx.

Referenced by ST_Has_Dope_Vector().

BOOL fast_doacross [static]

Definition at line 535 of file wn_mp.cxx.

Referenced by lower_mp(), Process_Parallel_Do(), Process_PDO(), and Transform_Do().

BOOL first_call = TRUE [static]

Definition at line 490 of file wn_mp.cxx.

Referenced by cgraph_decide_recursive_inlining(), init_whole_array(), and lower_mp().

Definition at line 503 of file wn_mp.cxx.

Definition at line 552 of file wn_mp.cxx.

INT32 func_level [static]

Definition at line 532 of file wn_mp.cxx.

Referenced by Create_MicroTask(), Process_Parallel_Do(), and Process_Parallel_Region().

ST* gtid_st = NULL [static]

Definition at line 650 of file wn_mp.cxx.

WN* if_node [static]

Definition at line 548 of file wn_mp.cxx.

Definition at line 508 of file wn_mp.cxx.

WN* if_preamble_block [static]

Definition at line 507 of file wn_mp.cxx.

vector<ST*> inner_scope_vla [static]

Definition at line 3506 of file wn_mp.cxx.

Definition at line 632 of file wn_mp.cxx.

Referenced by lower_mp(), and Strip_Nested_MP().

Definition at line 595 of file wn_mp.cxx.

Referenced by lower_mp(), and Translate_Label().

ST* last_iter [static]

Definition at line 519 of file wn_mp.cxx.

Referenced by Convex_Peeling_Depth(), and SNL_NEST_INFO::SNL_NEST_INFO().

Definition at line 609 of file wn_mp.cxx.

Referenced by lower_mp(), and LowerMP_PU_Init().

WN* lastlocal_nodes [static]

Definition at line 549 of file wn_mp.cxx.

WN* lastthread_node [static]

Definition at line 550 of file wn_mp.cxx.

WN* limit_node = NULL [static]

Definition at line 526 of file wn_mp.cxx.

Definition at line 522 of file wn_mp.cxx.

Referenced by Make_Local_Temps(), Rewrite_Do(), and Transform_Do().

ST* limit_st [static]

Definition at line 521 of file wn_mp.cxx.

INT64 line_number [static]

WN* livein_block [static]

Definition at line 499 of file wn_mp.cxx.

WN* liveout_block [static]

Definition at line 504 of file wn_mp.cxx.

ST* local_btid [static]

Definition at line 524 of file wn_mp.cxx.

INT32 local_count [static]

ST* local_gtid [static]

Definition at line 523 of file wn_mp.cxx.

ST* local_limit [static]

Definition at line 520 of file wn_mp.cxx.

ST* local_lower = NULL [static]

Definition at line 517 of file wn_mp.cxx.

WN* local_nodes [static]

Definition at line 551 of file wn_mp.cxx.

ST* local_ntrip [static]

Definition at line 514 of file wn_mp.cxx.

ST* local_start [static]

Definition at line 513 of file wn_mp.cxx.

ST* local_stride = NULL [static]

Definition at line 518 of file wn_mp.cxx.

Referenced by RESHAPE::Reshape_Constant_Shape().

ST* local_upper = NULL [static]

Definition at line 516 of file wn_mp.cxx.

INT32 lock_id = 0 [static]

Definition at line 612 of file wn_mp.cxx.

Referenced by Create_Critical_Lock(), and LowerMP_PU_Init().

Definition at line 8157 of file wn_mp.cxx.

Definition at line 8158 of file wn_mp.cxx.

Referenced by Copy_Non_MP_Tree(), and MP_Fix_Dependence_Graph().

Definition at line 491 of file wn_mp.cxx.

ST* mpbase_st = NULL [static]

Definition at line 617 of file wn_mp.cxx.

Definition at line 603 of file wn_mp.cxx.

Definition at line 604 of file wn_mp.cxx.

ST* mpflags_st = NULL [static]

Definition at line 619 of file wn_mp.cxx.

INT32 mpid_size = 0 [static]

Definition at line 600 of file wn_mp.cxx.

Referenced by lower_mp(), and LowerMP_PU_Init().

Definition at line 598 of file wn_mp.cxx.

Referenced by Create_MicroTask(), lower_mp(), and LowerMP_PU_Init().

WN* mpnum_node [static]

Definition at line 559 of file wn_mp.cxx.

const char* mpr_names[MPRUNTIME_LAST+1] [static]

Definition at line 660 of file wn_mp.cxx.

Referenced by Make_MPRuntime_ST().

ST_IDX mpr_sts[MPRUNTIME_LAST+1] [static]

Definition at line 742 of file wn_mp.cxx.

Referenced by Make_MPRuntime_ST().

Definition at line 605 of file wn_mp.cxx.

Referenced by Create_MicroTask().

Definition at line 607 of file wn_mp.cxx.

Referenced by Make_MPRuntime_ST().

WN* mpsched_node [static]

Definition at line 560 of file wn_mp.cxx.

MP_process_type mpt [static]

ST* mptrips_st = NULL [static]

Definition at line 618 of file wn_mp.cxx.

Referenced by NameLock_Add(), and NameLock_Find().

Definition at line 573 of file wn_mp.cxx.

Definition at line 572 of file wn_mp.cxx.

Definition at line 574 of file wn_mp.cxx.

WN* nested_chunk_node [static]

Definition at line 575 of file wn_mp.cxx.

WN* nested_do_order_lb = NULL [static]

Definition at line 584 of file wn_mp.cxx.

WN* nested_do_order_stride = NULL [static]

Definition at line 585 of file wn_mp.cxx.

Definition at line 164 of file wn_mp.cxx.

Definition at line 579 of file wn_mp.cxx.

Definition at line 576 of file wn_mp.cxx.

Definition at line 577 of file wn_mp.cxx.

Definition at line 569 of file wn_mp.cxx.

Referenced by Process_PDO().

Definition at line 578 of file wn_mp.cxx.

Definition at line 581 of file wn_mp.cxx.

Definition at line 582 of file wn_mp.cxx.

Definition at line 583 of file wn_mp.cxx.

Definition at line 571 of file wn_mp.cxx.

Referenced by Process_PDO().

Definition at line 586 of file wn_mp.cxx.

Definition at line 587 of file wn_mp.cxx.

Definition at line 590 of file wn_mp.cxx.

INT32 nl_idx = 0 [static]

Definition at line 7571 of file wn_mp.cxx.

INT32 nl_max = 0 [static]

Definition at line 7572 of file wn_mp.cxx.

Definition at line 555 of file wn_mp.cxx.

Definition at line 558 of file wn_mp.cxx.

Referenced by lower_mp(), Process_PDO(), and Walk_and_Localize().

WN* ntrip_calc [static]

Definition at line 498 of file wn_mp.cxx.

WN* ntrip_node [static]

Definition at line 527 of file wn_mp.cxx.

Definition at line 568 of file wn_mp.cxx.

Referenced by Gen_MP_SingleProcess_Block(), lower_mp(), and Transform_Parallel_Block().

const mINT32 NUM_HASH_ELEMENTS = 1021 [static]

Definition at line 440 of file wn_mp.cxx.

WN* numthreads_node [static]

Definition at line 561 of file wn_mp.cxx.

ST* old_gtid_st = NULL [static]

Definition at line 652 of file wn_mp.cxx.

WN* ordered_node [static]

Definition at line 562 of file wn_mp.cxx.

WN* parallel_func [static]

Definition at line 529 of file wn_mp.cxx.

ST* parallel_proc [static]

Definition at line 512 of file wn_mp.cxx.

Definition at line 530 of file wn_mp.cxx.

WN_MAP_TAB* pmaptab [static]

Definition at line 626 of file wn_mp.cxx.

PU_Info* ppuinfo [static]

Definition at line 625 of file wn_mp.cxx.

Definition at line 593 of file wn_mp.cxx.

SYMTAB_IDX psymtab [static]

WN* pu_chunk_node = NULL [static]

Definition at line 613 of file wn_mp.cxx.

BOOL pu_has_alloca [static]

BOOL pu_has_eh = FALSE [static]

Definition at line 621 of file wn_mp.cxx.

Referenced by Create_Preg_or_Temp(), and lower_mp().

BOOL pu_has_region [static]

WN* pu_mpsched_node = NULL [static]

Definition at line 614 of file wn_mp.cxx.

WN* reduction_nodes [static]

Definition at line 565 of file wn_mp.cxx.

WN* reference_block [static]

Definition at line 531 of file wn_mp.cxx.

INT32 region_id = 0 [static]

Definition at line 611 of file wn_mp.cxx.

WN* replace_block [static]

Definition at line 497 of file wn_mp.cxx.

WN* serial_stmt_block [static]

Definition at line 494 of file wn_mp.cxx.

INT32 shared_count [static]

WN* shared_nodes [static]

Definition at line 566 of file wn_mp.cxx.

Definition at line 597 of file wn_mp.cxx.

WN* stmt_block [static]

Definition at line 493 of file wn_mp.cxx.

Referenced by movable_if_test(), and Perform_Gather_Scatter().

WN* stride_node [static]

Definition at line 528 of file wn_mp.cxx.

ST* thread_info [static]

Definition at line 515 of file wn_mp.cxx.

ST* unnamed_lock_st = NULL [static]

Definition at line 655 of file wn_mp.cxx.

VAR_TABLE* var_table [static]

Definition at line 589 of file wn_mp.cxx.

Definition at line 922 of file wn_mp.cxx.


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