#include "defs.h"#include "wn.h"#include "stab.h"#include "cxx_hash.h"#include "access_vector.h"#include "wn_pragmas.h"#include "lego.h"#include "opt_du.h"#include "opt_alias_interface.h"#include "lego_util.h"#include "lwn_util.h"


Go to the source code of this file.
Data Types | |
| module | DISTR_DIM |
| module | DISTR_ARRAY |
| module | DISTR_INFO |
| module | DISTR_GLOBAL_INFO |
Typedefs | |
| typedef DYN_ARRAY< DISTR_ARRAY * > | DISTR_ARRAY_DA |
| typedef HASH_TABLE< ST *, DISTR_INFO * > | DA_HASH_TABLE |
| typedef STACK< DISTR_INFO * > | DA_STACK |
| typedef HASH_TABLE< ST *, DISTR_GLOBAL_INFO * > | DA_GLOBAL_HASH_TABLE |
Functions/Subroutines | |
| void | Read_Distr_Pragmas (WN *func_nd) |
| WN * | Read_Pragma_Distribute (WN *pwn) |
| WN * | Read_Pragma_Redistribute (WN *pwn, BOOL gen_phase=FALSE) |
| WN * | Load_Distr_Array (ST *array_st) |
| WN * | Numprocs (ST *array_st, INT dim, BOOL inside_loop, WN **block_wn) |
Variables | |
| DU_MANAGER * | Du_Mgr |
| class ALIAS_MANAGER * | Alias_Mgr |
| WN * | Current_Func_Node |
| DA_HASH_TABLE * | da_hash |
| DA_STACK * | da_stack |
| DA_GLOBAL_HASH_TABLE * | da_global |
| typedef HASH_TABLE<ST*, DISTR_GLOBAL_INFO*> DA_GLOBAL_HASH_TABLE |
Definition at line 702 of file lego_pragma.h.
| typedef HASH_TABLE<ST*, DISTR_INFO*> DA_HASH_TABLE |
Definition at line 698 of file lego_pragma.h.
| typedef STACK<DISTR_INFO*> DA_STACK |
Definition at line 700 of file lego_pragma.h.
| typedef DYN_ARRAY<DISTR_ARRAY*> DISTR_ARRAY_DA |
Definition at line 512 of file lego_pragma.h.
Definition at line 2061 of file lego_pragma.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, Copy_alias_info(), Create_formal_alias(), Create_local_alias(), Current_Func_Node, Du_Mgr, FALSE, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), DISTR_INFO::Find_Alloca(), FmtAssert, Is_True, KIND_POINTER, DISTR_INFO::Load_Distr_Array(), Make_Pointer_Type(), MTYPE_V, NULL, OPCODE_make_op(), OPR_LDA, OPR_LDID, Pointer_type, ST_isFormal, ST_isLocal, ST_name, ST_type, ST_Var_Kind(), TY_kind, var_formal, var_local, WN_CreateLda, and WN_CreateLdid.
Referenced by Generate_Dynamic_Bounds().
Definition at line 1494 of file lego_pragma.cxx.
References DU_MANAGER::Add_Def_Use(), ARRAY_DIRECTED_GRAPH16::Add_Vertex(), Alias_Mgr, Array_Dependence_Graph, AWN_LdidSym(), AWN_StidIntoSym(), Be_Type_Tbl, Copy_alias_info(), Create_alias(), Create_Preg_Symbol(), CXX_NEW, dart_offset_distr_p, distr_st_entries, distr_ty_entries, Du_Mgr, Find_Return_Registers(), FmtAssert, HT_Check, HT_Top, LEGO_pool, LNO_Use_Parm, DISTR_INFO::Load_Distr_Array(), LWN_CreateIload(), LWN_Insert_Block_After(), LWN_Insert_Block_Before(), LWN_Parentize(), LWN_Set_Parent, Make_Pointer_Type(), MTYPE_I4, MTYPE_I8, MTYPE_V, NULL, opc, OPCODE_make_op(), OPR_CALL, OPR_ILOAD, OPR_INTCONST, OPR_LDID, Pointer_type, RT_dim_struct, Set_Runtime_Call_Side_Effects(), ST_is_reshaped, ST_st_idx, TY_size, WN_Create(), WN_CreateBlock, WN_CreateIf, WN_CreateIntconst, WN_CreateLdid, WN_CreateParm, WN_else, WN_kid(), WN_PARM_BY_VALUE, WN_st_idx(), and WN_then.
Definition at line 3474 of file lego_pragma.cxx.
References DISTR_INFO::Add_Dact(), Array_TY_OK(), CLASS_VAR, DISTR_ARRAY::Convert_Expr_To_Symbol(), CURRENT_SYMTAB, CXX_NEW, DB_PRINT, EC_LNO_Bad_Pragma_String, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), FALSE, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), FmtAssert, Get_Array_Type(), INT, Is_VLA(), KIND_ARRAY, LEGO_pool, LWN_Delete_Tree_From_Block(), LWN_Get_Next_Stmt_Node(), mINT16, Move_Alloca(), New_DACT(), NULL, DISTR_ARRAY::Print(), Print_ST(), Print_TY(), printf(), PU_C_LANG, PU_CXX_LANG, PU_src_lang, STACK< T >::Push(), DISTR_INFO::Set_Dynamic(), ST_class, TRUE, TY_AR_const_lbnd, TY_AR_const_ubnd, TY_AR_etype, TY_AR_lbnd_val, TY_AR_ndims, TY_AR_ubnd_val, TY_arinfo, TY_kind, WN_Get_Linenum(), WN_pragma(), WN_pragma_index(), WN_pragma_preg(), WN_pragmas, and WN_st().
Referenced by ARRAY_DESCRIPTOR::Distribute_Array(), and Read_Distr_Pragmas().
Definition at line 184 of file lnopt_main.cxx.
Definition at line 203 of file lnopt_main.cxx.
Referenced by Bound_Difference_To_Linex(), DISTR_INFO::DART_Ldid(), DISTR_INFO::DART_Stid(), DISTR_INFO::Dimsize_Ldid(), DISTR_INFO::Dimsize_Stid(), DU_Closure_Collect_Defs(), Eliminate_Dead_SCF(), Execution_Cost_Value(), Find_Alloca(), DISTR_INFO::Find_Alloca(), Gen_Compare_DARTS(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Interleaved_Bounds(), Get_Original_Type(), Get_Runtime_Cur_Numthreads_Ldid(), Get_Runtime_Numthreads_Ldid(), HMB_Hoist_Messy_Bounds(), Initial_Hoist_Place(), IPA_LNO_Read_Formal(), Load_Distr_Array(), DISTR_INFO::Load_New_Distr_Array(), Move_Alloca(), Mp_Nested_Last_Thread(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), DISTR_INFO::Numprocs_Ldid(), DISTR_INFO::Numprocs_Stid(), Post_loop_peeling(), Pre_loop_peeling(), CALL_INFO::Print(), Process_Alt_Entries_Formal(), RR_Map_Setup_Traverse(), CALL_INFO::Tlog_Print(), Version_Loop(), Version_Region(), and Walk_Linex().
Definition at line 166 of file lego_pragma.cxx.
Referenced by Get_Original_Type(), Lego_File_Fini(), Lego_File_Init(), and Reshape_ST_Entry().
Definition at line 164 of file lego_pragma.cxx.
Referenced by Dealloc_HashTable_Entries(), EC_Array_Portion_Calls(), AEQUIV::Enter_Locals_Stack(), Get_Numthreads_Ldid(), Hoist_Expression(), Lego_Fix_Local_Rec(), Lego_PU_Fini(), Lego_PU_Init(), LEGO_UGS::LEGO_UGS(), TRANSPOSE_DIRECTED_GRAPH16::Local_Array(), Lookup_DACT(), Post_Peel_Map_Refs(), Pre_Peel_Map_Refs(), DISTRIBUTION::Process_Memory(), Rewrite_Reshaped_Commons(), and RR_Map_Refs().
Definition at line 165 of file lego_pragma.cxx.
Referenced by Dealloc_HashTable_Entries(), Delete_All_Distr_Pragmas(), Find_Buddy(), Lego_PU_Fini(), Lego_PU_Init(), and Lower_Distr_Pragmas().
Definition at line 183 of file lnopt_main.cxx.
1.5.6