#include <sys/types.h>#include <ctype.h>#include <limits.h>#include <alloca.h>#include "pu_info.h"#include "defs.h"#include "strtab.h"#include "opcode.h"#include "lego_pragma.h"#include "lego_util.h"#include "access_vector.h"#include "lwn_util.h"#include "lnoutils.h"#include "config_targ.h"#include "targ_const.h"#include "const.h"#include "dra_ec.h"#include "dra_demangle.h"

Go to the source code of this file.
Functions/Subroutines | |
| static WN * | Gen_Malloc_Cart (WN *insert_wn, INT32 size, SYMBOL *sym) |
| static WN * | Gen_Call_Array (WN *prev_wn, WN *array_wn, ST *func_st, SYMBOL *rvsym) |
| static void | Gen_Call_Array_Cart (WN *prev_wn, WN *array_wn, WN *cart_wn, ST *func_st) |
| void | EC_Array_Portion_Calls (WN *wn) |
Variables | |
| WN_MAP | LNO_Info_Map |
| MEM_POOL | LNO_default_pool |
Definition at line 89 of file lego_ec.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, AWN_LdidSym(), Be_Type_Tbl, CART_array_base, CART_element_size, CART_index, CART_ndims, Copy_alias_info(), Create_Preg_Symbol(), CXX_NEW, da_hash, distr_st_entries, Du_Mgr, EC_Array_Portion_Calls(), ECHT_Pop, ECHT_Push, FALSE, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), Gen_Call_Array(), Gen_Call_Array_Cart(), Gen_Malloc_Cart(), i, INT, Is_True, DISTR_INFO::IsReshaped(), LNO_Info_Map, DISTR_INFO::Load_Distr_Array(), LWN_Copy_Linenumber(), LWN_Copy_Tree(), LWN_CreateIstore(), LWN_Get_Parent, LWN_Insert_Block_After(), LWN_Make_Icon(), Make_Pointer_Type(), mINT16, MTYPE_I8, MTYPE_V, next, NULL, DISTR_INFO::Num_Dim(), OPCODE_is_call(), OPCODE_is_expression(), OPCODE_is_stmt(), OPCODE_make_op(), OPR_ARRAY, OPR_BLOCK, OPR_INTRINSIC_CALL, OPR_ISTORE, OPR_LDA, OPR_LDID, OPR_PARM, DISTR_INFO::Orig_TY(), Pointer_type, sprintf(), ST_name, strncmp(), TY_AR_etype, TY_size, WN_actual, WN_array_base, WN_array_index, WN_first(), WN_kid(), WN_kid0(), WN_kid_count(), WN_MAP_Get, WN_MAP_Set, WN_next(), WN_num_actuals(), WN_opcode(), WN_operator(), and WN_st().
Referenced by EC_Array_Portion_Calls(), and Lego_Lower_Pragmas().
Definition at line 281 of file lego_ec.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, AWN_StidIntoSym(), Be_Type_Tbl, Create_alias(), DRA_EC_struct_ptr_ty, Du_Mgr, Find_Return_Registers(), FmtAssert, LWN_Copy_Linenumber(), LWN_Insert_Block_After(), LWN_Set_Parent, MTYPE_V, NULL, OPCODE_make_op(), OPR_CALL, OPR_LDID, Pointer_type, ST_st_idx, WN_Create(), WN_CreateLdid, WN_CreateParm, WN_kid(), WN_PARM_BY_VALUE, and WN_st_idx().
| static void Gen_Call_Array_Cart | ( | WN * | prev_wn, | |
| WN * | array_wn, | |||
| WN * | cart_wn, | |||
| ST * | func_st | |||
| ) | [static] |
Definition at line 324 of file lego_ec.cxx.
References Be_Type_Tbl, LWN_Insert_Block_After(), LWN_Set_Parent, MTYPE_V, NULL, OPCODE_make_op(), OPR_CALL, Pointer_type, ST_st_idx, WN_Create(), WN_CreateParm, WN_kid(), WN_PARM_BY_VALUE, and WN_st_idx().
Referenced by EC_Array_Portion_Calls().
Definition at line 237 of file lego_ec.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, AWN_StidIntoSym(), Be_Type_Tbl, Create_alias(), DRA_EC_struct_ptr_ty, Du_Mgr, Find_Return_Registers(), FmtAssert, INTRN_U4I4MALLOC, INTRN_U8I8MALLOC, LWN_Copy_Linenumber(), LWN_Insert_Block_Before(), LWN_Make_Icon(), LWN_Set_Parent, MTYPE_I4, MTYPE_I8, MTYPE_U8, MTYPE_V, NULL, OPCODE_make_op(), OPR_INTRINSIC_CALL, OPR_LDID, Pointer_Size, Pointer_type, size_wn(), WN_Create(), WN_CreateLdid, WN_CreateParm, WN_intrinsic(), WN_kid0(), and WN_PARM_BY_VALUE.
Definition at line 177 of file lnopt_main.cxx.
Referenced by Auto_Parallelization(), BS_Collect_Array(), BS_Substitute(), BS_Worthwhile(), Constant_Propogate(), Create_Initialize_Loop(), Create_Local_Symbol(), Create_Single_Region(), Dismantle_Do(), Do_Automatic_Transformation(), Extended_Lower_Bound(), Extended_Upper_Bound(), fast_fuse_check_ok(), Finalize_Loops(), Fix_Access_Arrays_In_Copy_Block(), Fix_Array_Deps_On_Index_Variable(), Fix_Up_Loop_Info(), Fiz_Fuse(), Forward_Substitute_Ldids(), Freeze_Numthreads_Ldid(), Fuse(), Gather_Scatter_Scalar_Expand(), Gen_CheckNo_DART(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), Generate_If_Accesses(), Generate_Interleaved_Bounds(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Generate_Simple_Bounds(), Guard_A_Do(), Guard_Test_Redundant(), HAB_Copy_Array_Deps(), HMB_Compound_Guard_Test(), HMB_Copy_Array_Deps(), HMB_Hoist_Expressions(), HMB_Hoist_Messy_Subscripts(), HMB_Simple_Guard_Test(), Hoist_Bounds_One_Level(), Hoist_Iload_Ldid_Upper_Bound_One_Level(), Hoist_Varying_Lower_Bounds_Traverse(), If_While_Region_Fiz_Fuse(), Initialize_Pdo_Last_Local_Index(), Inter_Iteration_Cses(), IPA_LNO_Create_Dummy_Access_Array(), IPA_LNO_Evaluate_Array_Formals(), IPA_LNO_Read_Projected_Node(), IPA_LNO_Read_Projected_Region(), Is_Vectorizable_Loop(), Lego_Mp_Tile_Traverse(), Lego_OZero_Driver(), Lego_Skew_Loop(), Lego_Tile_Traverse(), Lego_Update_Skew_Count(), Mark_Code(), MIR_Replace(), Mp_Collapse_Cleanup(), Mp_Convert_To_Single_Loop(), Mp_Delete_Outer_Mp_Lego_Info(), Mp_Extract_Bogus_Do_Across(), Mp_Fix_Deps(), Mp_Layout_Lego_Layout(), Mp_Layout_Load_Pids(), Mp_Nested_Last_Thread(), Mp_Tile_Traverse(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), NSE_Annotate_Scalar_Call(), Parallelize_Doacross_Loop(), Perform_Gather_Scatter(), Post_loop_peeling(), Pre_loop_peeling(), Processor_2D_Tile_Loop(), Processor_3D_Tile_Loop(), Processor_Update_Outer_Tile(), Read_Pragma_Thread_Affinity(), Rebuild_Access_Arrays(), Remove_Unity_Trip_Loop(), Rewrite_Bounds(), RV_Reverse_Loop(), SA_Loop_Has_Dependence_Cycles(), Scalar_Expand(), Scalar_Expansion_Tile(), SE_Guard_Tests(), Separate_And_Update(), separate_loop_and_scalar_expand(), separate_loop_by_scc(), Simd_Finalize_Loops(), simd_fis_separate_loop_and_scalar_expand(), Simd_Update_Loop_Info(), SNL_Distribute(), SNL_Finalizable_Loops(), SNL_Finalize_Loops(), SNL_GEN_2D_Regtile(), SNL_GEN_Protect_Nest_With_Conditionals(), SNL_GEN_U_Ctiling(), SNL_INV_Cache_Block(), SNL_INV_Scalar_Expand_Tile(), SNL_INV_SE_Distribute(), SNL_Lift_Lego_Tile_Loops_Once(), SNL_Lift_Lego_Tile_Loops_Shifts(), SNL_Peel_Iteration(), SNL_Rebuild_Access_Arrays(), SNL_Transform(), Split_Array(), PF_LOOPNODE::Split_Loops(), Thread_Affinity_Lower(), Tile_Loop(), Transform_Code(), Transpose_For_MP(), Unify_Loop(), UT_Generate_Imperfect_If_Code(), Version_Loop(), Version_Region(), vintr_fis_separate_loop_and_scalar_expand(), Vintrinsic_Fission(), Walk_Projected_Node(), Walk_Projected_Region(), WBTR_Loop_Tiling(), WBTR_Scalar_Expansion(), WBTR_SNL_INV_Limited_SE_And_Dist(), Wind_Down(), and Wind_Down_Shorten().
Definition at line 167 of file lnopt_main.cxx.
Referenced by _xcreate_simple_basic_shackle(), _xdependence_is_preserved(), _xis_simple_shackle_case(), PF_LG::Add_Group(), Add_Parent_If_Constraints(), PF_LG::Add_Ref(), PF_UGS::Add_Ref(), PF_LOOPNODE::Add_Ref(), LEGO_UGS::Add_Ref(), PF_BASE_ARRAY::Add_Ref(), ARA_REF::ARA_REF(), BND_Max_Expr(), BND_Min_Expr(), BS_Has_Varying_Access_Array_In_Region(), BS_Is_Linearized(), BS_Matching_Load(), ARRAY_REF::Build_Array(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), Can_Evaluate_Cost(), DEPV_COMPUTE::Compute(), LEGO_UGS::Compute_Offset(), PF_UGS::ComputePFVec(), Convert_Do_Loops_Conditionals(), DEPV_COMPUTE::Copy_Bounds_To_Work(), Create_Initialize_Loop(), ARRAY_LOWER_REF::Create_Local_Block_Dim(), ARRAY_LOWER_REF::Create_Remote_Blkcyc_Dim(), ARRAY_LOWER_REF::Create_Remote_Block_Dim(), ARRAY_LOWER_REF::Create_Remote_Cyclic_Dim(), Create_Shackle_If_Per_Stmt(), Create_Simple_Shackle_Loops(), Create_Single_Region(), ARRAY_LOWER_REF::Create_Star_Dim(), Create_Stride1_Condition_If_Required(), PF_LG::Distance_LR(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), dump_loops(), EC_Array_Portion_Calls(), Eliminate_Dead_Do(), Equivalent_Load(), Execution_Cost(), Extended_Lower_Bound(), Extended_Upper_Bound(), Fast_32_Rem(), fast_fuse_check_ok(), Finalize_Index_Variable(), Finalize_Index_Variable_For_Remove_Unity_Trip_Loop(), Find_Average(), Find_Compare_Value(), Find_Step(), Fission_Test(), Fix_Up_Loop_Info(), Form_Loops(), Fuse(), Fuse_Test(), Gather_References_At_Deepest_Depth(), Gen_CheckNo_DART(), PF_LG::Gen_Pref_Node(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_Guard_Test(), Generate_If_Accesses(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Get_Call_Info(), Get_Do_Loop_Info(), Get_If_Info(), PF_LOOPNODE::Get_LoopInfo(), ARRAY_LOWER_REF::Get_Ref_Loop(), Get_Region_Info(), Guard_A_Do(), Guard_Test_Redundant(), Handle_Sink_General_Case(), Handle_Sink_Promotion_Case(), Has_Call_Info(), Has_Complex_Access_Array(), Has_Execution_Cost(), HMB_Compound_Guard_Test(), HMB_Find_Messy_Subscripts(), HMB_Hoist_Messy_Bounds(), HMB_Simple_Guard_Test(), Hoist_Expression(), HoistIf_Optimize(), HoistIf_Replace_Symbol(), Initialize_Doacross_Last_Local_Index(), Initialize_Pdo_Last_Local_Index(), inner_fission_2(), SYMBOL_TREE::Integer_Ref_Needs_Reg(), intrinsic_operand_kind(), Invariant_Red_Depth(), PAR_STAT::Invariant_Reduction(), IPA_LNO_Annotate_Array_Call(), IPA_LNO_Annotate_Execution_Cost(), IPA_LNO_Evaluate_Formal_Symbols(), IPA_LNO_Read_Formal(), Is_Bad_Array(), ARA_LOOP_INFO::Is_Privatizable(), Is_Ref_Significant_In_Stmt(), Is_Vectorizable_Loop(), Lego_Simplify(), LEGO_UGS::LEGO_UGS(), Lego_Update_Skew_Count(), LNO_Annotate_Array_Call(), LNO_Build_Access(), LNO_Build_Access_Array(), LNO_Build_Do_Access(), LNO_Build_If_Access(), LNO_Print_One_Access(), Lnoptimizer(), Loop_Invariant_Access(), Lower_Single_Array_Dim(), PF_LG::LR_Compare(), Mark_Code(), Mark_Indexed_References(), Matching_Stores(), Max_Dep_Distance(), Maybe_Handle_Sink_Promotion_Case(), Messy_Subscript(), MIR_Build_Loop_List_Array(), MIR_Replace(), Mp_Layout_Lego_Layout(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), NSE_Annotate_Array_Call(), Outer_Loop_Fusion_Walk(), Parallelization_Process_Deps(), Parallelize_Doacross_Loop(), PF_LG::PF_LG(), PF_UGS::PF_UGS(), Post_loop_peeling(), Post_Peel_Map_Refs(), Pre_loop_peeling(), Pre_Peel_Map_Refs(), PF_UGS::Print(), ARRAY_DIRECTED_GRAPH16::Print(), Process_Load(), PF_LOOPNODE::Process_Loop(), DISTRIBUTION::Process_Memory(), Process_Store(), Processor_Update_Outer_Tile(), Propagate_Loop_Index(), Read_Pragma_Thread_Affinity(), Recursively_Add_Array_Lin_Symbols(), Recursively_Add_Parent_If_Lin_Symbols(), Ref_Contains_Reuse_For_Loop(), PF_LG::Ref_In_LG(), REGION::REGION(), Register_Name_To_Statement(), Remark_Depth(), Remove_Redundant_And_Inconsistent_If(), Replace_Equality_Check(), Replace_Wnexp_With_Exp_Copy(), Rewrite_Bounds(), RR_Map_Refs(), RR_Map_Setup_Traverse(), SA_Loop_Has_Dependence_Cycles(), DEPV_COMPUTE::Same_Permutation(), SE_Guard_Tests(), Separate(), Separate_And_Update(), Set_Call_Info(), Set_Do_Loop_Info(), ARA_REF::Set_Loop_Invariant(), DEPV_COMPUTE::Set_Step(), Shackle_Do_Depth_For_If(), Shackleable_Ifs_Surrounding_Stmt(), Shape_Mismatch_At_Formal(), Simd(), Simd_Align_Analysis(), Simd_Align_Generate_Peel_Loop(), Simd_Create_Remainder_Loop(), Simd_Finalize_Loops(), Simd_Handle_Negative_Coefficient(), simd_operand_kind(), Simd_Unroll_Statement(), Simd_Vectorize_Scalar_Reduction(), Simple_Execution_Cost(), SNL_Copy_Exp(), SNL_GEN_2D_Regtile(), SNL_GEN_Protect_Nest_With_Conditionals(), SNL_INV_Cache_Block(), SNL_Peel_Iteration(), SNL_Regtile_Loop(), SNL_SPL_Fix_Inner_Loop_Limits(), SNL_SPL_Loop_Is_Inner_Tile(), SNL_SPL_Propagate_Tiled_Lower_Bound(), SNL_SPL_Split_Tile_Sets(), SNL_TRANS_INDEX_DATA::SNL_TRANS_INDEX_DATA(), Split_Array(), PF_LOOPNODE::Split_Loops(), Stride_One_Level(), test_significance(), Unit_Stride_Reference(), Unroll_Loop_By_Trip_Count(), Update_Nest_Depth_Traverse(), UT_Generate_Imperfect_If_Code(), Variant_Array(), Varying_Load(), Version_Loop(), Version_Region(), Vintrinsic_Fission(), PF_LG::Volume(), ARA_LOOP_INFO::Walk_If(), WBT_DOLOOP_STACK(), and Wind_Down().
1.5.6