#include "defs.h"#include "stab.h"#include "wn.h"#include "access_vector.h"


Go to the source code of this file.
Data Types | |
| module | MP_INFO |
Defines | |
| #define | HT_Push 0 |
| #define | HT_Pop 1 |
| #define | HT_Top 2 |
| #define | HT_Check 3 |
| #define | HT_Replace 4 |
| #define | Initialize_Dart 5 |
| #define | Allocate_Dart 6 |
| #define | Alloc_Reshape 7 |
| #define | Dealloc_Reshape 8 |
| #define | Migrate_Array 9 |
| #define | Unmigrate_Array 10 |
| #define | Migrate_Pages 11 |
| #define | Proc_Pool_Push 12 |
| #define | Proc_Pool_Pop 13 |
| #define | Cyclic_Bounds 14 |
| #define | Simple_Bounds 15 |
| #define | Processor_Layout 16 |
| #define | Processor_Coordinates 17 |
| #define | Dynamic_Affinity_Bounds 18 |
| #define | mp_sug_numthreads 19 |
| #define | mp_cur_numthreads 20 |
| #define | mp_my_threadnum 21 |
| #define | mp_numthreads_fn 22 |
| #define | Deallocate_Dart 23 |
| #define | Compare_Darts 24 |
| #define | ECHT_Push 25 |
| #define | ECHT_Pop 26 |
| #define | ECHT_Check 27 |
| #define | ECHT_Compare 28 |
| #define | mp_cur_numthreads_func 29 |
| #define | DST_MAX 30 |
| #define | RT_dim_struct 0 |
| #define | RT_dim_ptr 1 |
| #define | RT_struct 2 |
| #define | RT_ptr 3 |
| #define | VOID_ptr 4 |
| #define | DTY_MAX 5 |
| #define | dart_offset_num_dim 0 |
| #define | dart_offset_element_size 8 |
| #define | dart_offset_flags 16 |
| #define | dart_offset_distr_n 24 |
| #define | dart_offset_distr_p 32 |
| #define | dart_offset_distr_k 40 |
| #define | dart_offset_distr_lb 48 |
| #define | dart_base_size 3 |
| #define | dart_distr_size 4 |
| #define | ST_isGlobal(st) (ST_Var_Kind(st) == var_global) |
| #define | ST_isLocal(st) (ST_Var_Kind(st) == var_local) |
| #define | ST_isFormal(st) (ST_Var_Kind(st) == var_formal) |
| #define | ST_isCommon(st) (ST_Var_Kind(st) == var_common) |
| #define | AWN_Mpy(rtype, l, r) AWN_Binary(OPR_MPY, rtype, l, r, FALSE) |
| #define | AWN_Mod(rtype, l, r) AWN_Binary(OPR_MOD, rtype, l, r, FALSE) |
| #define | AWN_Rem(rtype, l, r) AWN_Binary(OPR_REM, rtype, l, r, FALSE) |
| #define | AWN_Sub(rtype, l, r) AWN_Binary(OPR_SUB, rtype, l, r, FALSE) |
| #define | AWN_Add(rtype, l, r) AWN_Binary(OPR_ADD, rtype, l, r, FALSE) |
| #define | AWN_Div(rtype, l, r) AWN_Binary(OPR_DIV, rtype, l, r, FALSE) |
| #define | AWN_Max(rtype, l, r) AWN_Binary(OPR_MAX, rtype, l, r, FALSE) |
| #define | AWN_Min(rtype, l, r) AWN_Binary(OPR_MIN, rtype, l, r, FALSE) |
| #define | AWN_Rem_Safe(rtype, l, r) AWN_Binary(OPR_REM, rtype, l, r, TRUE) |
| #define | AWN_Div_Safe(rtype, l, r) AWN_Binary(OPR_DIV, rtype, l, r, TRUE) |
| #define | AWN_Mod_Safe(rtype, l, r) AWN_Binary(OPR_MOD, rtype, l, r, TRUE) |
| #define | DB_PRINT(x) |
| #define | VB_PRINT(x) |
Enumerations | |
| enum | VAR_KIND { var_local, var_global, var_formal, var_common } |
| enum | MP_SCHED_TYPE { MP_SCHED_UNKNOWN, MP_SCHED_SIMPLE, MP_SCHED_DYNAMIC, MP_SCHED_GSS, MP_SCHED_INTERLEAVE, MP_SCHED_RUNTIME, MP_SCHED_PSEUDOLOWERED } |
Functions/Subroutines | |
| void | Mp_File_Init (void) |
| DISTR_ARRAY * | Lookup_DACT (ST *array_st) |
| VAR_KIND | ST_Var_Kind (ST *) |
| TY_IDX | Get_Original_Type (ST *st) |
| TY_IDX | Get_Array_Type (ST *st) |
| WN * | AWN_Binary (OPERATOR opr, TYPE_ID rtype, WN *kid0, WN *kid1, BOOL can_speculate=FALSE) |
| WN * | AWN_LdidSym (SYMBOL *var) |
| WN * | AWN_StidIntoSym (SYMBOL *var, WN *val) |
| WN * | Create_Positive_Divceil (TYPE_ID type, WN *kid0, WN *kid1, BOOL can_speculate) |
| void | Set_Array_Dim (WN *array_expr, INT dim, WN *bound, WN *index) |
| void | Replace_WN (WN *old_wn, WN *new_wn) |
| WN * | Get_Numthreads_Ldid (LEGO_INFO *li) |
| WN * | Get_Runtime_Numthreads_Ldid () |
| WN * | Get_Runtime_Cur_Numthreads_Ldid () |
| void | Set_Runtime_Call_Side_Effects (WN *call_wn) |
| void | Freeze_Numthreads_Ldid (WN *wn_loop) |
| void | Freeze_Cur_Numthreads_Func (WN *wn_loop) |
| WN * | Get_Frozen_Numthreads_Ldid (WN *wn_loop) |
| WN * | Get_Runtime_Cur_Numthreads_Func (WN *wn_loop) |
| WN * | Loop_Step (WN *wn_loop) |
| SYMBOL * | Create_Local_Symbol (char *name, TYPE_ID mtype) |
| WN * | Get_MP_Region (WN *wn) |
| BOOL | Fixed_Size_Array_Is_Stride_One (ST *array_st) |
| ST * | Find_Return_Registers (TYPE_ID type, PREG_NUM *rreg1, PREG_NUM *rreg2) |
| WN * | Lego_Find_Node (SYMBOL sym, WN *wn_tree) |
| void | Lego_Find_Nodes (OPERATOR opr, SYMBOL sym, WN *wn_tree, STACK< WN * > *stack) |
| mBOOL | Single_Loop_Coeff (ACCESS_VECTOR *av, INT64 *stride, INT64 *offset, mINT32 *depth) |
| INT | Get_New_Lego_Mp_Tile_Key (void) |
Variables | |
| ST * | distr_st_entries [DST_MAX] |
| TY_IDX | distr_ty_entries [DTY_MAX] |
| TY_IDX | DART_ptr_TY |
| BOOL | PU_has_reshaped_commons |
| WN_MAP | Safe_Spec_Map |
| BOOL | Debug_Lego |
| BOOL | Verbose_Lego |
| #define Alloc_Reshape 7 |
Definition at line 208 of file lego_util.h.
Referenced by Gen_Alloc_Reshape(), Generate_Runtime_Stuff(), Is_Allowed_Invalid_Access(), and Set_Runtime_Call_Side_Effects().
| #define Allocate_Dart 6 |
Definition at line 207 of file lego_util.h.
Referenced by Gen_Alloc_DART(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define AWN_Add | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_ADD, rtype, l, r, FALSE) |
Definition at line 334 of file lego_util.h.
Referenced by ARRAY_LOWER_REF::Create_Local_Blkcyc_Dim(), ARRAY_LOWER_REF::Create_Local_Block_Dim(), ARRAY_LOWER_REF::Create_Local_Cyclic_Dim(), LEGO_INFO::Create_Local_Index(), Create_Positive_Divceil(), Create_Unroll_Copy(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Interleaved_Bounds(), Get_Array_Dimension_Size(), Lower_Bound_In_Affinity_Range(), Lower_Single_Array_Dim(), Simd_Vectorize_Induction_Variables(), Trip_Count(), and Upper_Bound_In_Affinity_Range().
| #define AWN_Div | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_DIV, rtype, l, r, FALSE) |
Definition at line 335 of file lego_util.h.
Referenced by Create_Positive_Divceil(), and Trip_Count().
| #define AWN_Div_Safe | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_DIV, rtype, l, r, TRUE) |
Definition at line 340 of file lego_util.h.
Referenced by LEGO_INFO::Create_Local_Index(), Create_Positive_Divceil(), ARRAY_LOWER_REF::Create_Remote_Blkcyc_Dim(), ARRAY_LOWER_REF::Create_Remote_Block_Dim(), ARRAY_LOWER_REF::Create_Remote_Cyclic_Dim(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Interleaved_Bounds(), and Get_Array_Dimension_Size().
| #define AWN_Max | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_MAX, rtype, l, r, FALSE) |
Definition at line 336 of file lego_util.h.
Referenced by Extended_Upper_Bound(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), and Generate_Block_Bounds_Negative().
| #define AWN_Min | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_MIN, rtype, l, r, FALSE) |
Definition at line 337 of file lego_util.h.
Referenced by Extended_Lower_Bound(), Freeze_Numthreads_Ldid(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), and Generate_Interleaved_Bounds().
| #define AWN_Mod | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_MOD, rtype, l, r, FALSE) |
Definition at line 331 of file lego_util.h.
| #define AWN_Mod_Safe | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_MOD, rtype, l, r, TRUE) |
Definition at line 341 of file lego_util.h.
Referenced by Generate_Blkcyc_Bounds(), Generate_Cyclic_Bounds(), and Generate_Interleaved_Bounds().
| #define AWN_Mpy | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_MPY, rtype, l, r, FALSE) |
Definition at line 330 of file lego_util.h.
Referenced by LEGO_INFO::Create_Local_Index(), ARRAY_LOWER_REF::Create_Remote_Blkcyc_Dim(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Interleaved_Bounds(), Lower_Bound_In_Affinity_Range(), Lower_Single_Array_Dim(), Mp_Collapse_Loop_Heads(), Mp_Trip_Count(), Trip_Count(), and Upper_Bound_In_Affinity_Range().
| #define AWN_Rem | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_REM, rtype, l, r, FALSE) |
Definition at line 332 of file lego_util.h.
| #define AWN_Rem_Safe | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_REM, rtype, l, r, TRUE) |
Definition at line 339 of file lego_util.h.
Referenced by LEGO_INFO::Create_Local_Index(), ARRAY_LOWER_REF::Create_Remote_Blkcyc_Dim(), ARRAY_LOWER_REF::Create_Remote_Block_Dim(), ARRAY_LOWER_REF::Create_Remote_Cyclic_Dim(), and Read_Pragma_Thread_Affinity().
| #define AWN_Sub | ( | rtype, | |||
| l, | |||||
| r | ) | AWN_Binary(OPR_SUB, rtype, l, r, FALSE) |
Definition at line 333 of file lego_util.h.
Referenced by Affinity_Array_Upper_Bound(), ARRAY_LOWER_REF::Create_Local_Block_Dim(), Create_Positive_Divceil(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Interleaved_Bounds(), Get_Array_Dimension_Size(), Lower_Bound_In_Affinity_Range(), Trip_Count(), and Upper_Bound_In_Affinity_Range().
| #define Compare_Darts 24 |
Definition at line 225 of file lego_util.h.
Referenced by Gen_Compare_DARTS(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define Cyclic_Bounds 14 |
Definition at line 215 of file lego_util.h.
Referenced by Generate_Runtime_Cyclic_Bounds(), Generate_Runtime_Stuff(), Set_Runtime_Call_Side_Effects(), and Special_Lego_Or_Mp_Call().
| #define dart_base_size 3 |
| #define dart_distr_size 4 |
Definition at line 260 of file lego_util.h.
Referenced by Generate_Runtime_Stuff(), and Section_Variable_TY().
| #define dart_offset_distr_k 40 |
Definition at line 255 of file lego_util.h.
Referenced by DISTR_ARRAY::Convert_Expr_To_Symbol(), Gen_Init_DART(), and Generate_Runtime_Stuff().
| #define dart_offset_distr_lb 48 |
Definition at line 256 of file lego_util.h.
Referenced by Gen_Init_DART(), and Generate_Runtime_Stuff().
| #define dart_offset_distr_n 24 |
Definition at line 253 of file lego_util.h.
Referenced by Gen_Init_DART(), and Generate_Runtime_Stuff().
| #define dart_offset_distr_p 32 |
Definition at line 254 of file lego_util.h.
Referenced by Gen_Symbols_In_DINFO(), Generate_Runtime_Stuff(), and Numprocs().
| #define dart_offset_element_size 8 |
Definition at line 251 of file lego_util.h.
Referenced by Gen_Init_DART(), and Generate_Runtime_Stuff().
| #define dart_offset_flags 16 |
Definition at line 252 of file lego_util.h.
Referenced by Gen_Init_DART(), and Generate_Runtime_Stuff().
| #define dart_offset_num_dim 0 |
Definition at line 250 of file lego_util.h.
Referenced by Gen_Init_DART(), and Generate_Runtime_Stuff().
| #define DB_PRINT | ( | x | ) |
Definition at line 405 of file lego_util.h.
Referenced by Read_Distr_Pragmas(), Read_Pragma_Distribute(), Read_Pragma_Distribute_Reshape(), and Read_Pragma_Redistribute().
| #define Dealloc_Reshape 8 |
Definition at line 209 of file lego_util.h.
Referenced by Gen_Alloc_Reshape(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define Deallocate_Dart 23 |
Definition at line 224 of file lego_util.h.
Referenced by Gen_Dealloc_DART(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define DST_MAX 30 |
| #define DTY_MAX 5 |
Definition at line 244 of file lego_util.h.
| #define Dynamic_Affinity_Bounds 18 |
Definition at line 219 of file lego_util.h.
Referenced by Generate_Dynamic_Bounds(), Init_Special_Lego_Mp_Call(), and Special_Lego_Or_Mp_Call().
| #define ECHT_Check 27 |
| #define ECHT_Compare 28 |
| #define ECHT_Pop 26 |
Definition at line 227 of file lego_util.h.
Referenced by EC_Array_Portion_Calls(), and Generate_Runtime_Stuff().
| #define ECHT_Push 25 |
Definition at line 226 of file lego_util.h.
Referenced by EC_Array_Portion_Calls(), and Generate_Runtime_Stuff().
| #define HT_Check 3 |
Definition at line 204 of file lego_util.h.
Referenced by Gen_Lookup_DART(), Generate_Runtime_Stuff(), Lower_Pragma_Distribute(), Numprocs(), Process_Alt_Entries_Formal(), and Set_Runtime_Call_Side_Effects().
| #define HT_Pop 1 |
Definition at line 202 of file lego_util.h.
Referenced by Gen_HT_DART(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define HT_Push 0 |
Definition at line 201 of file lego_util.h.
Referenced by Gen_HT_DART(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define HT_Replace 4 |
Definition at line 205 of file lego_util.h.
Referenced by Gen_HT_DART(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define HT_Top 2 |
Definition at line 203 of file lego_util.h.
Referenced by DISTR_ARRAY::Convert_Expr_To_Symbol(), Gen_Lookup_DART(), Generate_Runtime_Stuff(), Lower_Pragma_Distribute_Reshape(), Numprocs(), Process_Alt_Entries_Formal(), and Set_Runtime_Call_Side_Effects().
| #define Initialize_Dart 5 |
Definition at line 206 of file lego_util.h.
Referenced by Gen_Init_DART(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define Migrate_Array 9 |
Definition at line 210 of file lego_util.h.
Referenced by Gen_Call_Array_Dart_Args(), Gen_Migrate_Array(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define Migrate_Pages 11 |
Definition at line 212 of file lego_util.h.
Referenced by Generate_Runtime_Stuff(), Read_Pragma_Page_Place(), and Set_Runtime_Call_Side_Effects().
| #define mp_cur_numthreads 20 |
Definition at line 221 of file lego_util.h.
Referenced by Freeze_Cur_Numthreads_Func(), Get_Runtime_Cur_Numthreads_Ldid(), and Init_Special_Lego_Mp_Call().
| #define mp_cur_numthreads_func 29 |
Definition at line 231 of file lego_util.h.
Referenced by Freeze_Cur_Numthreads_Func(), Init_Special_Lego_Mp_Call(), and Set_Runtime_Call_Side_Effects().
| #define mp_my_threadnum 21 |
Definition at line 222 of file lego_util.h.
Referenced by Generate_Runtime_Stuff(), Init_Special_Lego_Mp_Call(), Initialize_Pdo_Last_Local_Index(), Read_Pragma_Thread_Affinity(), Set_Runtime_Call_Side_Effects(), and Special_Lego_Or_Mp_Call().
| #define mp_numthreads_fn 22 |
Definition at line 223 of file lego_util.h.
Referenced by Get_Runtime_Numthreads_Ldid_From_Func(), Init_Special_Lego_Mp_Call(), and Set_Runtime_Call_Side_Effects().
| #define mp_sug_numthreads 19 |
Definition at line 220 of file lego_util.h.
Referenced by Get_Runtime_Numthreads_Ldid(), and Init_Special_Lego_Mp_Call().
| #define Proc_Pool_Pop 13 |
Definition at line 214 of file lego_util.h.
Referenced by Generate_Runtime_Stuff(), Lower_Distr_Pragmas(), and Set_Runtime_Call_Side_Effects().
| #define Proc_Pool_Push 12 |
Definition at line 213 of file lego_util.h.
Referenced by Generate_Runtime_Stuff(), Lower_Distr_Pragmas(), and Set_Runtime_Call_Side_Effects().
| #define Processor_Coordinates 17 |
Definition at line 218 of file lego_util.h.
Referenced by Init_Special_Lego_Mp_Call(), Mp_Coordinate_Call(), and Special_Lego_Or_Mp_Call().
| #define Processor_Layout 16 |
Definition at line 217 of file lego_util.h.
Referenced by Init_Special_Lego_Mp_Call(), Mp_Layout_Call(), and Special_Lego_Or_Mp_Call().
| #define RT_dim_ptr 1 |
| #define RT_dim_struct 0 |
Definition at line 239 of file lego_util.h.
Referenced by DISTR_ARRAY::Convert_Expr_To_Symbol(), Gen_Init_DART(), Gen_Symbols_In_DINFO(), Generate_Runtime_Stuff(), and Numprocs().
| #define RT_ptr 3 |
Definition at line 242 of file lego_util.h.
Referenced by DISTR_INFO::DART_Ldid(), Gen_Alloc_DART(), Gen_Lookup_DART(), and Generate_Runtime_Stuff().
| #define RT_struct 2 |
| #define Simple_Bounds 15 |
Definition at line 216 of file lego_util.h.
Referenced by Generate_Simple_Bounds(), Init_Special_Lego_Mp_Call(), and Special_Lego_Or_Mp_Call().
Definition at line 290 of file lego_util.h.
Referenced by Create_Common_Block(), Create_Global_Variable(), DISTR_INFO::DISTR_INFO(), and New_DART().
Definition at line 289 of file lego_util.h.
Referenced by Get_Array_Type(), DISTR_INFO::Load_Distr_Array(), Load_Distr_Array(), and Reshape_ST_Entry().
Definition at line 288 of file lego_util.h.
Referenced by DISTR_INFO::DART_Ldid(), DISTR_INFO::DART_Stid(), DISTR_INFO::Dimsize_Ldid(), DISTR_INFO::Dimsize_Stid(), Get_Array_Type(), DISTR_INFO::Load_Distr_Array(), Load_Distr_Array(), DISTR_INFO::Numprocs_Ldid(), DISTR_INFO::Numprocs_Stid(), and Reshape_ST_Entry().
| #define Unmigrate_Array 10 |
Definition at line 211 of file lego_util.h.
Referenced by Gen_Call_Array_Dart_Args(), Gen_Migrate_Array(), Generate_Runtime_Stuff(), and Set_Runtime_Call_Side_Effects().
| #define VB_PRINT | ( | x | ) |
Definition at line 411 of file lego_util.h.
| #define VOID_ptr 4 |
| enum MP_SCHED_TYPE |
| MP_SCHED_UNKNOWN | |
| MP_SCHED_SIMPLE | |
| MP_SCHED_DYNAMIC | |
| MP_SCHED_GSS | |
| MP_SCHED_INTERLEAVE | |
| MP_SCHED_RUNTIME | |
| MP_SCHED_PSEUDOLOWERED |
Definition at line 353 of file lego_util.h.
| enum VAR_KIND |
Definition at line 427 of file lego_util.cxx.
References Fast_32_Div(), Fast_32_Rem(), Get_Trace(), LWN_CreateExp2(), MTYPE_I4, MTYPE_U4, MTYPE_V, OPCODE_make_op(), OPR_DIV, OPR_MOD, OPR_REM, Safe_Spec_Map, TP_LNOPT2, TT_LEGO_DISABLE_FP_DIVMOD, TYPE_ID, WN_MAP_Set, and WN_rtype().
Definition at line 461 of file lego_util.cxx.
References Alias_Mgr, CLASS_PREG, CLASS_VAR, Create_alias(), Is_True, Promote_Type(), SYMBOL::St(), ST_class, ST_type, SYMBOL::Type, TYPE_ID, SYMBOL::WN_Offset(), and WN_RLdid().
Definition at line 477 of file lego_util.cxx.
References Alias_Mgr, CLASS_PREG, CLASS_VAR, Create_alias(), Is_True, LWN_CreateStid(), MTYPE_V, OPCODE_make_op(), OPR_STID, SYMBOL::St(), ST_class, ST_type, SYMBOL::Type, TYPE_ID, and SYMBOL::WN_Offset().
Definition at line 1095 of file lego_util.cxx.
References Be_Type_Tbl, CLASS_VAR, CURRENT_SYMTAB, CXX_NEW, EXPORT_LOCAL, LNO_default_pool, New_ST(), Save_Str(), SCLASS_AUTO, Set_ST_is_temp_var, ST_Init(), and sym.
Definition at line 503 of file lego_util.cxx.
References AWN_Add, AWN_Div, AWN_Div_Safe, AWN_Sub, div(), Du_Mgr, LWN_Copy_Tree(), LWN_Make_Icon(), and sub.
Definition at line 390 of file dra_mangle.cxx.
Definition at line 1127 of file lego_util.cxx.
References FALSE, FmtAssert, Get_Array_Type(), i, INT, ST_name, stride, TRUE, TY_AR_const_lbnd, TY_AR_const_stride, TY_AR_const_ubnd, TY_AR_etype, TY_AR_lbnd_val, TY_AR_ndims, TY_AR_stride_val, TY_AR_ubnd_val, and TY_size.
Referenced by Copy_Array().
Definition at line 900 of file lego_util.cxx.
References DU_MANAGER::Add_Def_Use(), Add_Pragma_To_MP_Region(), Alias_Mgr, AWN_StidIntoSym(), Be_Type_Tbl, Create_local_alias(), Create_Local_Symbol(), distr_st_entries, Du_Mgr, Find_Return_Registers(), FmtAssert, Get_Do_Loop_Info(), LWN_Get_Parent, LWN_Insert_Block_After(), LWN_Insert_Block_Before(), mp_cur_numthreads, mp_cur_numthreads_func, DO_LOOP_INFO::Mp_Info, MTYPE_I4, MTYPE_V, OPC_REGION, OPCODE_make_op(), OPR_CALL, OPR_LDID, Set_Runtime_Call_Side_Effects(), MP_INFO::Set_Sym_Frozen(), sprintf(), SYMBOL::St(), ST_st_idx, Str_Buf, WN_Create(), WN_CreateLdid, WN_Get_Linenum(), WN_map_id(), SYMBOL::WN_Offset(), WN_opcode(), WN_PRAGMA_SHARED, WN_Set_Linenum(), and WN_st_idx().
Referenced by Mp_Tile_Loop(), and Read_Pragma_Thread_Affinity().
Definition at line 942 of file lego_util.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, AWN_LdidSym(), AWN_Min, AWN_StidIntoSym(), Build_Doloop_Stack(), Copy_alias_info(), Create_local_alias(), Create_Local_Symbol(), Do_Wtype(), Du_Mgr, FmtAssert, Get_Do_Loop_Info(), Get_Runtime_Numthreads_Ldid(), Interleaved_Pragma_Chunksize(), Is_True, LNO_Build_Access(), LNO_default_pool, LNO_local_pool, LNO_Pseudo_Lower, LWN_CreateDivceil(), LWN_Delete_Tree(), LWN_Extract_From_Block(), LWN_Get_Parent, LWN_Insert_Block_Before(), LWN_Integer_Cast(), LWN_ITER, LWN_WALK_TreeIter, LWN_WALK_TreeNext, DO_LOOP_INFO::Mp_Info, MP_SCHED_INTERLEAVE, MP_SCHED_SIMPLE, MP_INFO::Nest_Total(), NULL, OPC_IF, OPC_REGION, OPR_INTCONST, OPR_LDID, Promote_Type(), Replace_Symbol(), MP_INFO::Sched_Type(), MP_INFO::Set_Sym_Frozen(), sprintf(), Str_Buf, Trip_Count, TYPE_ID, wn, WN_const_val(), WN_desc(), WN_Is_If_MpVersion, WN_map_id(), WN_opcode(), and WN_operator().
Referenced by Mp_Tile_Loop().
Definition at line 209 of file dra_clone.cxx.
References Get_Original_Type(), KIND_POINTER, ONST, SCLASS_AUTO, SCLASS_BASED, SCLASS_FORMAL, ST_base, ST_base_idx(), ST_isFormal, ST_isLocal, ST_sclass, ST_st_idx, TY_kind, and TY_pointed.
Referenced by Check_Arrays(), Create_Common_Block(), DISTR_INFO::DISTR_INFO(), ARRAY_DESCRIPTOR::Distribute_Array(), DRA_Insert_Pragmas(), DRA_Mangle_Call_Site(), DRA_Mangle_Entry(), DRA_New_Clone_Sig(), DRA_Preprocess_Call_Site(), DRA_Preprocess_Entry(), DRA_Read_Pragmas_In_Block(), Find_Insertion_Point(), Fixed_Size_Array_Is_Stride_One(), TRANSPOSE_DIRECTED_GRAPH16::Gather_Arrays(), Lower_Pragma_Distribute(), Lower_Pragma_Distribute_Reshape(), Lower_Pragma_Redistribute(), New_DACT(), Process_Global_Distribute(), Read_Pragma_Distribute(), Read_Pragma_Distribute_Reshape(), Read_Pragma_Redistribute(), and Reshape_ST_Entry().
Definition at line 1011 of file lego_util.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, AWN_LdidSym(), Copy_alias_info(), Du_Mgr, FmtAssert, Get_Do_Loop_Info(), Get_Runtime_Cur_Numthreads_Func(), Get_Runtime_Cur_Numthreads_Ldid(), MP_INFO::Is_Pdo(), Is_Versioned_Mp_Loop(), LWN_Get_Parent, DO_LOOP_INFO::Mp_Info, MTYPE_I4, NULL, OPC_DO_LOOP, OPR_STID, MP_INFO::Sym_Frozen(), wn, WN_Intconst(), WN_opcode(), WN_operator(), and WN_prev().
Referenced by Generate_Interleaved_Bounds(), Generate_Simple_Bounds(), Mp_Layout_Call(), and Processor_Update_Outer_Tile().
Definition at line 1114 of file lego_util.cxx.
References Is_Mp_Region(), and LWN_Get_Parent.
Referenced by Create_Initialize_Loop(), Is_Reduction_In_Prallel_Region(), and Parallelize_Doacross_Loop().
Definition at line 1084 of file lego_util.cxx.
Referenced by Processor_2D_Tile_Loop(), and Processor_3D_Tile_Loop().
Definition at line 173 of file dra_clone.cxx.
References CLASS_VAR, Current_Func_Node, CXX_NEW, da_global, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), File_info, FILE_INFO_ipa(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), DISTR_GLOBAL_INFO::Get_TY(), DRA_GLOBAL_INFO::Get_TY(), GLOBAL_SYMTAB, Malloc_Mem_Pool, NULL, ONST, OPR_PRAGMA, Read_Global_Data, ST_class, ST_is_global, ST_is_reshaped, ST_level, ST_type, WN_first(), WN_func_pragmas, WN_next(), WN_operator(), WN_pragma(), WN_pragma_arg1(), WN_PRAGMA_TYPE_OF_RESHAPED_ARRAY, and WN_st().
Referenced by DRA_Process_Globals(), Get_Array_Type(), and Process_Alt_Entries_Local().
Definition at line 1044 of file lego_util.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, AWN_LdidSym(), Copy_alias_info(), Du_Mgr, FmtAssert, Get_Do_Loop_Info(), MP_INFO::Is_Pdo(), LWN_Get_Parent, DO_LOOP_INFO::Mp_Info, NULL, OPC_DO_LOOP, OPR_STID, MP_INFO::Sym_Frozen(), wn, WN_opcode(), WN_operator(), and WN_prev().
Referenced by Generate_Interleaved_Bounds(), Generate_Simple_Bounds(), Get_Frozen_Numthreads_Ldid(), Mp_Layout_Call(), Processor_Update_Outer_Tile(), and Read_Pragma_Thread_Affinity().
| WN* Get_Runtime_Cur_Numthreads_Ldid | ( | ) |
Definition at line 370 of file lego_util.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, Be_Type_Tbl, Create_global_alias(), Current_Func_Node, distr_st_entries, Du_Mgr, mp_cur_numthreads, MTYPE_I4, NULL, OPCODE_make_op(), OPR_LDID, and WN_CreateLdid.
Referenced by Current_Numprocs(), Generate_Interleaved_Bounds(), Generate_Simple_Bounds(), Get_Frozen_Numthreads_Ldid(), Mp_Layout_Call(), and Processor_Update_Outer_Tile().
| WN* Get_Runtime_Numthreads_Ldid | ( | ) |
Definition at line 694 of file lego_util.cxx.
References i, INT, Lego_Find_Node(), NULL, OPC_BLOCK, OPCODE_has_sym(), wn, WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_opcode().
Referenced by Lego_Find_Node().
Definition at line 722 of file lego_util.cxx.
References i, INT, Lego_Find_Nodes(), NULL, OPC_BLOCK, STACK< T >::Push(), wn, WN_first(), WN_kid(), WN_kid_count(), WN_next(), WN_opcode(), and WN_operator().
Referenced by Lego_Find_Nodes(), Mp_Coordinate_Copy_Out_Coordinates(), Processor_Update_Inner_Tile(), and Processor_Update_Outer_Tile().
| DISTR_ARRAY* Lookup_DACT | ( | ST * | array_st | ) |
Definition at line 294 of file lego_util.cxx.
References da_hash, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), DISTR_INFO::Get_Dact(), Is_True, NULL, DISTR_INFO::Num_Dact(), and ST_name.
Referenced by LEGO_UGS::Add_Ref(), Affinity_Array_Upper_Bound(), DISTR_INFO::Chunksize(), Copy_Array(), Copy_Array_Section(), LEGO_INFO::Create_Local_Index(), Create_Tmp_Array(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Generate_Bounds(), Get_Lego_Affinity_Distr_Type(), LEGO_INFO::Get_Local_Step(), ARRAY_LOWER_REF::Is_Blkcyc_Dim_Local(), ARRAY_LOWER_REF::Is_Block_Dim_Local(), ARRAY_LOWER_REF::Is_Cyclic_Dim_Local(), Lego_Reshaped_Array(), Lego_Tile_Legal(), Lego_Tile_Single_Loop(), Lego_Tiling_Depth(), Lego_Update_Skew_Count(), Lookup_Array_Distr(), Mp_Delete_Outer_Mp_Lego_Info(), Mp_Version_Loop(), Post_Peel_Map_Refs(), Pre_Peel_Map_Refs(), Read_Pragma_Data_Affinity(), and RR_Map_Refs().
Definition at line 4459 of file lnoutils.cxx.
Referenced by Generate_Block_Bounds_Negative(), Generate_Dynamic_Bounds(), Generate_Interleaved_Bounds(), Generate_Simple_Bounds(), Lego_Loop_Want_Skew(), SNL_SPL_Loop_Is_Inner_Tile(), SNL_SPL_Propagate_Tiled_Lower_Bound(), Standardize_For_Tiling(), and Trip_Count().
Definition at line 543 of file lego_util.cxx.
References INT, Is_True, LWN_Get_Parent, LWN_Set_Parent, NULL, OPC_BLOCK, WN_first(), WN_kid(), WN_kid_count(), WN_last(), WN_next(), WN_opcode(), and WN_prev().
Referenced by Convert_Do_Loops_Conditionals(), Convert_Le_With_Floor_2Lt(), Create_Shackle_If_Per_Stmt(), Create_Simple_Shackle_Loops(), Handle_Sink_General_Case(), Handle_Sink_Promotion_Case(), Handle_Sink_Symbolic_Non_Promotion_Case(), Hoist_Expression(), Invert_Conditional(), ARRAY_LOWER_REF::Lower_Array_Expr(), ARRAY_LOWER_REF::Lower_Array_Param(), Lower_Single_Array_Dim(), Maybe_Handle_Sink_Promotion_Case(), Propagate_Loop_Index(), Remove_Floor_From_One_Sided_Cond(), return_upper_boundplus1(), Rewrite_Reshaped_Commons(), Simplify_Cond_With_Div_Floor(), Simplify_Cond_With_Floor(), and Sink_If2do().
Definition at line 522 of file lego_util.cxx.
References INT, Is_True, LWN_Set_Parent, WN_array_dim, WN_array_index, and WN_num_dim.
Referenced by ARRAY_LOWER_REF::Create_Local_Blkcyc_Dim(), ARRAY_LOWER_REF::Create_Local_Block_Dim(), ARRAY_LOWER_REF::Create_Local_Cyclic_Dim(), ARRAY_LOWER_REF::Create_Remote_Blkcyc_Dim(), ARRAY_LOWER_REF::Create_Remote_Block_Dim(), ARRAY_LOWER_REF::Create_Remote_Cyclic_Dim(), and ARRAY_LOWER_REF::Create_Star_Dim().
Definition at line 581 of file lego_util.cxx.
References Alloc_Reshape, Allocate_Dart, Compare_Darts, Cyclic_Bounds, Dealloc_Reshape, Deallocate_Dart, distr_st_entries, DST_MAX, FALSE, FmtAssert, HT_Check, HT_Pop, HT_Push, HT_Replace, HT_Top, i, Initialize_Dart, INT, Is_True, Migrate_Array, Migrate_Pages, mp_cur_numthreads_func, mp_my_threadnum, mp_numthreads_fn, OPR_CALL, OPR_INTRINSIC_CALL, Proc_Pool_Pop, Proc_Pool_Push, Unmigrate_Array, WN_operator(), WN_Set_Call_Non_Data_Mod, WN_Set_Call_Non_Data_Ref, WN_Set_Call_Non_Parm_Mod, WN_Set_Call_Non_Parm_Ref, WN_Set_Call_Parm_Mod, WN_Set_Call_Parm_Ref, and WN_st().
Referenced by DISTR_ARRAY::Convert_Expr_To_Symbol(), Freeze_Cur_Numthreads_Func(), Gen_Alloc_DART(), Gen_Alloc_Reshape(), Gen_Compare_DARTS(), Gen_Dealloc_DART(), Gen_HT_DART(), Gen_Init_DART(), Gen_Lookup_DART(), Gen_Migrate_Array(), Generate_Runtime_Cyclic_Bounds(), Get_Runtime_Numthreads_Ldid_From_Func(), Initialize_Pdo_Last_Local_Index(), Lower_Distr_Pragmas(), Numprocs(), Read_Pragma_Page_Place(), and Read_Pragma_Thread_Affinity().
| mBOOL Single_Loop_Coeff | ( | ACCESS_VECTOR * | av, | |
| INT64 * | stride, | |||
| INT64 * | offset, | |||
| mINT32 * | depth | |||
| ) |
Definition at line 169 of file lego_pragma.cxx.
Referenced by Create_Common_Block(), DISTR_INFO::DISTR_INFO(), Generate_Runtime_Stuff(), and New_DART().
| ST* distr_st_entries[DST_MAX] |
| TY_IDX distr_ty_entries[DTY_MAX] |
Definition at line 126 of file lego.cxx.
Referenced by Lego_Lower_Pragmas(), Lego_PU_Init(), and Read_Pragma_Distribute_Reshape().
Definition at line 121 of file lego.cxx.
Referenced by AWN_Binary(), Fast_32_Div(), Fast_32_Rem(), Hoist_Place(), and Lnoptimizer().
1.5.6