#include <alloca.h>#include <sys/types.h>#include <ctype.h>#include <limits.h>#include "pu_info.h"#include "lnoutils.h"#include "config.h"#include "config_cache.h"#include "config_lno.h"#include "lnopt_main.h"#include "stab.h"#include "targ_const.h"#include "wn_simp.h"#include "stdlib.h"#include "lwn_util.h"#include "strtab.h"#include "targ_sim.h"#include "optimizer.h"#include "opt_du.h"#include "name.h"#include "wintrinsic.h"#include "lno_bv.h"#include "region_util.h"#include "fb_whirl.h"#include "lego_gen.h"#include "snl_utils.h"#include "dep_graph.h"#include "wn_pragmas.h"#include "ff_utils.h"#include "move.h"#include "w2op.h"#include "prompf.h"#include "anl_driver.h"#include "ipa_lno_util.h"#include "debug.h"#include "wutil.h"#include "intrn_info.h"

Go to the source code of this file.
| #define lnoutils_CXX "lnoutils.cxx" |
Definition at line 45 of file lnoutils.cxx.
| typedef HASH_TABLE<WN*,WN*> LOOP_MAPPING |
Definition at line 3446 of file lnoutils.cxx.
| typedef HASH_TABLE<WN*,BOOL> LOOPS_ONLY |
Definition at line 3503 of file lnoutils.cxx.
Definition at line 205 of file lnoutils.cxx.
References ARRAY_DIRECTED_GRAPH16::Add_Vertex(), Array_Dependence_Graph, Do_Loop_Is_Good(), Enclosing_Do_Loop(), and LNO_Erase_Dg_From_Here_In().
Referenced by Create_Single_Region().
| void Add_Pragma_To_MP_Region | ( | const WN * | cwn, | |
| ST * | st, | |||
| WN_OFFSET | offset, | |||
| WN_PRAGMA_ID | pragma_id, | |||
| BOOL | make_compiler_generated | |||
| ) |
Definition at line 4120 of file lnoutils.cxx.
References Add_Pragma_To_MP_Regions(), BOOL, CLASS_PREG, Is_Mp_Region(), Is_True, LWN_Get_Parent, LWN_Insert_Block_Before(), Malloc_Mem_Pool, NULL, OPC_REGION, OPR_PRAGMA, OPR_XPRAGMA, Parent_Map, Preg_Name(), REGION_get_rid(), RID_TYPE_mp, ST_class, ST_name, tmp, WN_CreatePragma, WN_first(), WN_Get_Linenum(), WN_next(), WN_opcode(), WN_operator(), WN_pragma(), WN_pragma_arg1(), WN_PRAGMA_FIRSTPRIVATE, WN_PRAGMA_LASTLOCAL, WN_PRAGMA_LASTTHREAD, WN_PRAGMA_LOCAL, WN_PRAGMA_SHARED, WN_pragmas, WN_region_pragmas, WN_Set_Linenum(), WN_set_pragma_compiler_generated, and WN_st().
Referenced by Freeze_Cur_Numthreads_Func(), Gen_Init_DART(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), Generate_Interleaved_Bounds(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), Hoist_Expression(), Mp_Coordinate_Copy_Out_Coordinates(), Mp_Localize_Onto_and_Layout(), and Mp_Nested_Last_Thread().
Definition at line 1016 of file lnoutils.cxx.
References Add_To_Symbol(), FALSE, INT, printf(), sym, and TRUE.
Definition at line 954 of file lnoutils.cxx.
References Add_To_Symbol(), BOOL, FALSE, FmtAssert, INT, Is_True, LWN_CreateExp2(), LWN_Get_Parent, LWN_Make_Icon(), LWN_Parentize(), LWN_Set_Parent, MTYPE_V, SYMBOL::Name(), OPCODE_is_stmt(), OPCODE_make_op(), OPR_ADD, OPR_BLOCK, OPR_LDID, OPR_STID, TRUE, WN_first(), WN_kid(), WN_kid_count(), WN_next(), WN_opcode(), WN_operator(), WN_rtype(), and WN_Simplify_Tree().
Referenced by Add_To_Symbol(), Post_loop_peeling(), SNL_Regtile_Loop(), Twod_Setbound(), and Unroll_Loop_By_Trip_Count().
Definition at line 1979 of file lnoutils.cxx.
References DU_MANAGER::Du_Get_Use(), Du_Mgr, FALSE, USE_LIST_ITER::First(), USE_LIST::Incomplete(), SLIST_ITER::Is_Empty(), iter, LWN_Get_Parent, n, USE_LIST_ITER::Next(), NULL, and TRUE.
Referenced by Index_Variable_Live_At_Exit().
Definition at line 4101 of file lnoutils.cxx.
References BOOL, Do_Loop_Depth(), FALSE, LWN_Get_Parent, NULL, OPC_BLOCK, OPC_DO_LOOP, TRUE, and WN_opcode().
Referenced by Get_Expansion_Space(), Remove_Unity_Trip_Loop_Dep_Update(), and Scalar_Expand().
| void Build_Doloop_Stack | ( | WN * | wn, | |
| DOLOOP_STACK * | stack | |||
| ) |
Definition at line 776 of file lnoutils.cxx.
References Build_Doloop_Stack_Rec(), LWN_Get_Parent, OPC_DO_LOOP, STACK< T >::Push(), and WN_opcode().
Referenced by Add_Condition(), Analyse_Dependencies(), ARA_LOOP_INFO::ARA_LOOP_INFO(), BS_Replace_Load(), BS_Replace_Store(), BS_Substitute(), Build_Statement_Dependence_Graph(), Check_Doacross_Sync_Coverage(), Common_Loop_Ancestor(), Constant_Propogate(), Convert_Do_Loops_Conditionals(), Convex_Peeling_Depth(), Create_Initialize_Loop(), Create_Shackle_If_Per_Stmt(), PAR_STAT::Distribute(), PAR_STAT::Distribute_By_Splitting(), PAR_STAT::Distribute_For_Permutation(), Do_Automatic_Transformation(), Doacross_Cost(), Extended_Lower_Bound(), Extended_Upper_Bound(), Fiss_Gather_Inner_Loop(), Fission_DU_Update(), Fission_Inner_Loop(), Fix_Access_Arrays_In_Copy_Block(), Fix_Blockable_Dependences(), Fix_Deps_For_Load(), Fix_Deps_For_Load_Or_Store(), Forward_Substitute_Ldids(), Freeze_Numthreads_Ldid(), Fully_Permutable_Permutation(), Fuse(), Fuse_Outer_Loops(), Fusion_Du_Update(), Fusion_Loop_Stmt_Update(), Gather_Scatter_Scalar_Expand(), Gen_CheckNo_DART(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_If_Accesses(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Guard_A_Do(), HAB_Copy_Array_Deps(), Handle_Sink_Promotion_Case(), HMB_Compound_Guard_Test(), HMB_Copy_Array_Deps(), HMB_Hoist_Expressions(), HMB_Hoist_Messy_Bounds(), HMB_Hoist_Messy_Subscripts(), HMB_Maximum_Point(), HMB_Replace_Messy_Bounds_Loop(), HMB_Simple_Guard_Test(), Hoist_Bounds_One_Level(), Hoist_Iload_Ldid_Upper_Bound_One_Level(), Hoist_Outer_Invar(), Hoist_Varying_Lower_Bounds_Traverse(), Initialize_Pdo_Last_Local_Index(), PAR_STAT::Innermost_Sandwiched_Code(), Inv_Dep_Info(), Invariant_Loop_Count(), Invariant_Loops(), Invariant_Permutation(), IPA_LNO_Evaluate_Array_Formals(), IPA_LNO_Read_Projected_Region(), Is_Rectangular_Nested_Doacross(), Lego_Skew_Loop(), LNO_FB_Inv_Interchange(), Loop_Invariant_Access(), Loop_Stmt_Update(), ARRAY_LOWER_REF::Lower_Array_Expr(), SX_INFO::Make_Sx_Info(), Mark_Code(), Max_Dep_Distance(), Maybe_Handle_Sink_Promotion_Case(), MIR_Replace(), MIR_Update_Dependences(), Mp_Collapse_Cleanup(), Mp_Collapse_Loop_Heads(), Mp_Collapse_Loop_Statements(), Mp_Coordinate_Copy_Out_Coordinates(), Mp_Fix_Deps(), Mp_Layout_Copy_Out_Layout(), Mp_Layout_Lego_Layout(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), Parallel_Directive_Class(), PAR_STAT::Parallel_Interchange(), Parallelizable_At_Depth(), Parallelize_Doacross_Loop(), Perform_Gather_Scatter(), PAR_STAT::Permute_Loops(), Post_loop_peeling(), Pre_loop_peeling(), Processor_2D_Tile_Loop(), Processor_3D_Tile_Loop(), Processor_Update_Outer_Tile(), Prompf_Interchange(), Prompf_Interchanges(), Prompf_Nested_Tile(), Read_Pragma_Thread_Affinity(), Rebuild_Access_Arrays(), Recompute_Deps(), Red_Dep_Info(), Redundant_Condition(), Remove_Unity_Trip_Loop(), Repair_Bad_Dependences(), Rewrite_Bounds(), RV_Reverse_Loop(), Scalar_Dependence_Prevent_Fusion(), Scalar_Expand(), Scalar_Variable_Renaming(), Scan_Parameters(), SE_CT_New_Tile_Infos(), SE_Fix_Dependence(), SE_Guard_Tests(), Shackle_Postprocess_Do_Loop_Bounds(), Simd_Analysis(), Simd_Finalize_Loops(), Sink_Out_Sandwiched_Statement(), SNL_Auto_Parallelization(), SNL_Bad_Scalars_Are_Distributable(), SNL_Dir_Cannot_Interchange(), SNL_Distribute(), SNL_Distribute_By_Splitting(), SNL_Distribute_For_Permutation(), SNL_Finalize_Index_Variables(), SNL_GEN_2D_Regtile(), SNL_GEN_Distribute(), SNL_GEN_Permute_Loops(), SNL_GEN_Protect_Nest_With_Conditionals(), SNL_GEN_Scalar_Expand(), SNL_GEN_U_Ctiling(), SNL_Inner_Cache_Cost(), SNL_Inner_Machine_Cost(), SNL_INV_Distribute(), SNL_INV_Distribution(), SNL_INV_Limited_SE_And_Dist(), SNL_INV_Permute_Loops(), SNL_INV_Scalar_Expand(), SNL_INV_Scalar_Expand_Tile(), SNL_INV_SE_Distribute(), SNL_INV_Transforms(), SNL_Is_Distributable(), SNL_Is_Scalar_Expandable(), SNL_Legal_Permutation(), SNL_Lift_Lego_Tile_Loops_Once(), SNL_Lift_Lego_Tile_Loops_Shifts(), SNL_Min_Parallel_Overhead_Cost(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Parallelization_Costs(), SNL_Peel_Iteration(), SNL_Permutation_Is_Distributable(), SNL_Permutation_Needs_Distribution(), SNL_Permute_Loops(), SNL_Rebuild_Access_Arrays(), SNL_Scalar_Expand(), SNL_Scalar_Expand_For_Splitting(), SNL_Transform(), SNL_Upper_Bound_Standardize(), Split_Depth(), PF_LOOPNODE::Split_Loops(), Splittable(), Statement_Sinkable_Out_Of_Loop(), Tile_Loop(), Transform_Code(), LOOP_MODEL::Try_Inner(), Unify_Loop(), SX_INFO::Update_Reduction_Loop_Stmts(), UT_Generate_Imperfect_If_Code(), Version_Loop(), Version_Region(), Vintrinsic_Fission(), Walk_Projected_Region(), and Wind_Down().
| static void Build_Doloop_Stack_Rec | ( | WN * | wn, | |
| WN * | parent, | |||
| DOLOOP_STACK * | stack | |||
| ) | [static] |
Definition at line 765 of file lnoutils.cxx.
References LWN_Get_Parent, OPC_DO_LOOP, STACK< T >::Push(), WN_do_body, and WN_opcode().
Referenced by Build_Doloop_Stack().
Definition at line 4507 of file lnoutils.cxx.
References Build_Parent_Stack(), LWN_Get_Parent, and STACK< T >::Push().
Referenced by Build_Parent_Stack(), and Common_Ancestor().
Definition at line 4522 of file lnoutils.cxx.
References STACK< T >::Bottom_nth(), Build_Parent_Stack(), STACK< T >::Elements(), i, INT, LNO_local_pool, and NULL.
Referenced by Hoist_Place(), Is_Lex_Before(), New_Lowest_Statement(), Scalar_Store_Hoist_Place(), SE_New_Outer_Loop(), and Wn_Is_Above().
Definition at line 4478 of file lnoutils.cxx.
References STACK< T >::Bottom_nth(), Build_Doloop_Stack(), Do_Depth(), STACK< T >::Elements(), FmtAssert, i, INT, LNO_local_pool, and NULL.
Definition at line 4821 of file lnoutils.cxx.
References STACK< T >::Bottom_nth(), Build_Doloop_Stack(), Constant_Propogate(), CXX_NEW, defs, DU_MANAGER::Du_Get_Use(), Du_Mgr, STACK< T >::Elements(), DO_LOOP_INFO::Est_Num_Iterations, FALSE, SLIST_ITER::First(), USE_LIST_ITER::First(), Get_Do_Loop_Info(), i, DEF_LIST::Incomplete(), USE_LIST::Incomplete(), INT, INT64, SLIST_ITER::Is_Empty(), iter, Iterations(), LNO_Build_Access(), LNO_default_pool, LNO_local_pool, loop_stack, LWN_Delete_Tree(), LWN_Get_Parent, LWN_Make_Icon(), LWN_Set_Parent, MEM_POOL_Pop, MEM_POOL_Push, SLIST_ITER::Next(), USE_LIST_ITER::Next(), node, DO_LOOP_INFO::Num_Iterations_Profile, DO_LOOP_INFO::Num_Iterations_Symbolic, OPC_BLOCK, OPC_DO_LOOP, OPCODE_is_expression(), OPR_INTCONST, OPR_LDID, OPR_STID, STACK< T >::Push(), tmp, TYPE_ID, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), WN_const_val(), WN_kid(), WN_kid0(), WN_offset(), WN_opcode(), WN_operator(), WN_rtype(), WN_Simplify_Tree(), and WN_st().
Referenced by Constant_Propogate(), and Remove_Unity_Trip_Loop().
Definition at line 4736 of file lnoutils.cxx.
References CLASS_PREG, Contains_Dedicated_Preg(), FALSE, i, INT, Last_Dedicated_Preg_Offset, NULL, OPC_BLOCK, OPCODE_has_sym(), ST_class, TRUE, WN_first(), WN_kid(), WN_kid_count(), WN_next(), WN_offset(), WN_opcode(), and WN_st().
Referenced by Contains_Dedicated_Preg(), Forward_Substitutable(), FS_Array_Worthwhile(), and FS_Worthwhile().
| WN* Create_ILoad_From_IStore | ( | WN * | wn_store, | |
| DU_MANAGER * | du, | |||
| ARRAY_DIRECTED_GRAPH16 * | dg | |||
| ) |
Definition at line 3861 of file lnoutils.cxx.
References Alias_Mgr, Duplicate_alias_info(), LWN_Copy_Tree(), LWN_CreateIload(), Matching_Load_Opcode(), NULL, TY_pointed, WN_kid1(), WN_offset(), WN_opcode(), and WN_ty().
Referenced by BS_Substitute().
Definition at line 1298 of file lnoutils.cxx.
References Create_Preg(), MTYPE_To_PREG, and NULL.
Referenced by LEGO_INFO::Create_Local_Index(), Create_Loop_Symbol(), Create_Unroll_Copy(), EC_Array_Portion_Calls(), Fuse(), Gather_Scatter_Scalar_Expand(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), Generate_Interleaved_Bounds(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), Get_Expansion_Space(), Initialize_Pdo_Last_Local_Index(), MIR_Replace(), Mp_Collapse_Cleanup(), Mp_Layout_Load_Pids(), Numprocs(), Perform_Gather_Scatter(), Processor_2D_Tile_Loop(), Processor_3D_Tile_Loop(), Read_Pragma_Thread_Affinity(), Replace_Index_Variable(), Rewrite_Bounds(), RR_Map_Setup_Traverse(), Scalar_Expansion_Tile(), scalar_rename(), Simd_Vectorize_Induction_Variables(), Simd_Vectorize_Load_And_Equilvalent(), SNL_GEN_2D_Regtile(), SNL_INV_Cache_Block(), SNL_Regtile_Loop(), SNL_TRANS_INDEX_DATA::SNL_TRANS_INDEX_DATA(), Thread_Affinity_Lower(), WBTR_Loop_Tiling(), and Wind_Down().
Definition at line 228 of file lnoutils.cxx.
References Add_Barrier_Vertex(), PROMPF_LINES::Add_Lines(), BOOL, CXX_NEW, FALSE, FmtAssert, Get_Enclosing_Region_ID(), INT, PROMPF_INFO::Is_Enabled(), LNO_default_pool, LNO_Info_Map, LWN_Extract_From_Block(), LWN_Get_Parent, LWN_Insert_Block_After(), LWN_Insert_Block_Before(), LWN_Parentize(), New_Construct_Id(), NULL, OPC_PRAGMA, OPC_REGION, pl, Prompf_Id_Map, Prompf_Info, PROMPF_pool, REGION_KIND_MP, RID_Add_kid(), RID_Create(), RID_CREATE_NEW_ID, RID_depth, RID_level, RID_map, RID_TYPE_mp_Set, RL_LNO, PROMPF_INFO::Single_Process(), TRUE, wn, WN_CreateBarrier, WN_CreateBlock, WN_CreatePragma, WN_CreateRegion, WN_first(), WN_MAP32_Set, WN_MAP_Set, WN_next(), WN_opcode(), WN_pragma(), WN_pragma_omp, WN_PRAGMA_PARALLEL_BEGIN, WN_PRAGMA_SINGLE_PROCESS_BEGIN, WN_region_id(), WN_region_pragmas, WN_set_pragma_compiler_generated, and WN_set_pragma_omp.
Referenced by ARA_LOOP_INFO::Generate_Copyout_Loop(), and Lego_Fix_Local_Rec().
Definition at line 1308 of file lnoutils.cxx.
References Be_Type_Tbl, CLASS_VAR, CURRENT_SYMTAB, EXPORT_LOCAL, New_ST(), Save_Str(), SCLASS_AUTO, Set_ST_is_temp_var, and ST_Init().
Referenced by Generate_Dynamic_Bounds(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), and Mp_Nested_Last_Thread().
| ACCESS_VECTOR* Difference_Inequality | ( | ACCESS_VECTOR * | lb, | |
| ACCESS_VECTOR * | ub, | |||
| INT | var, | |||
| DIFFERENCE_KIND | code, | |||
| MEM_POOL * | pool | |||
| ) |
Definition at line 1440 of file lnoutils.cxx.
References Add(), ACCESS_VECTOR::Const_Offset, CXX_DELETE, CXX_NEW, DIFFERENCE_EXEC_ALWAYS, DIFFERENCE_EXEC_NEVER, DIFFERENCE_EXEC_NEVER_OR_ONCE, INT, Is_True, lcm(), Lcm(), ACCESS_VECTOR::Loop_Coeff(), Mul, ACCESS_VECTOR::Negate_Me(), and x.
Referenced by Always_Executes(), COND_Do_Info(), and SNL_NEST_INFO::SNL_NEST_INFO().
Definition at line 723 of file lnoutils.cxx.
References Do_Depth(), FmtAssert, INT, LWN_Get_Parent, NULL, OPC_DO_LOOP, and WN_opcode().
Referenced by Always_Executes(), BS_Has_Varying_Access_Array_In_Region(), ARRAY_REF::Build_Array(), Common_Loop_Ancestor(), Dismantle_Do_Walk(), Do_Depth(), Est_Num_Iters_Suspect(), Generate_Sink_Out_Code(), Hoistable_Statement(), Invariant_Loops(), Is_Bad_Array(), Lego_Index_From_Access_Vector(), Lego_Loop_Want_Skew(), Lego_Simplify(), Lego_Skew_Canonical(), Lego_Skew_Equivalent(), LWN_Process_FF_Pragmas_Walk_r(), MIR_Ok_Hoist_Wn_Dependence(), MIR_Partition_Lists(), MIR_Update_Dependences(), Mp_Collapse_Dependences(), Mp_Fix_Deps(), Mp_Layout_Call(), Mp_Layout_Copy_In_Onto(), Mp_Layout_Copy_Out_Layout(), Mp_Layout_Lego_Layout(), Mp_Version_Parallel_Region(), Num_Common_Loops(), Outer_Tile(), Peelable(), Processor_Update_Outer_Tile(), Recompute_Deps_For_Tree(), Scalar_Expand(), SE_Find_Stid(), Set_Invariant_Symbols(), SNL_Finalizable_Loops(), SNL_Regtile_Loop(), SNL_SPL_Split_Tile_Sets(), SNL_Transform(), and Wind_Down().
Definition at line 3967 of file lnoutils.cxx.
References FALSE, Get_Current_PU, Get_Do_Loop_Info(), Is_Mp_Region(), LWN_Get_Parent, DO_LOOP_INFO::Mp_Info, NULL, OPC_PRAGMA, PU_cxx_lang(), TRUE, WN_first(), WN_opcode(), WN_pragma(), WN_PRAGMA_DOACROSS, WN_PRAGMA_PARALLEL_DO, WN_PRAGMA_PDO_BEGIN, and WN_region_pragmas.
Referenced by FIZ_FUSE_INFO::Build(), Check_Suggested_Parallel(), Delete_MP_Region(), Eliminate_Dead_Do(), Eliminate_Dead_SCF_rec(), Find_MP(), Fission(), Fiz_Fuse(), Fiz_Fuse_Phase(), Fully_Unroll_Short_Loops(), DISTRIBUTION::Gather_Arrays(), Gather_Scatter_Walk(), Guard_Dos_Rec(), Highest_Condition_Point(), Hoist_Conditionals(), Hoist_Expression(), HoistIf_Walk(), If_While_Region_Fiz_Fuse(), Index_Variable_Is_Last_Local(), Innermore_Parallel_Loop(), Innermore_Parallel_Or_Lego_Loop(), Inter_Iteration_Cses_R(), Is_Aggressive_Vintr_Loop(), Is_Vectorizable_Loop(), Is_Well_Formed_Simd(), Mark_Auto_Vectorizable_Loops(), Mark_Dos(), MIR_Hoistable_Ref(), Mp_Disable_Opts_On_Internal_Regions(), MP_Problem(), Outermore_Parallel_Construct(), Outermore_Parallel_Construct_Or_Lego_Loop(), Print_Prompf_Msgs(), Print_Prompl_Msgs(), DISTRIBUTION::Process_Memory(), Prompf_Nest_Depth(), Rename_Update_MP(), SA_Version_F90_Loops_For_Contiguous(), Simd_Finalize_Loops(), Simd_Pre_Analysis(), Simd_Vectorize_Scalar_Reduction(), STD_Canonicalize_Upper_Bound(), Vintrinsic_Fission(), and Vintrinsic_Fission_Walk().
Definition at line 2210 of file lnoutils.cxx.
References FmtAssert, MTYPE_is_unsigned, OPC_DO_LOOP, TYPE_ID, WN_desc(), WN_end, and WN_opcode().
Referenced by Find_Do_Loop_With_Min(), Fiss_Gather_Inner_Loop(), STD_Traverse(), and Upper_Bound_Standardize().
Definition at line 99 of file lnoutils.cxx.
References Is_True, OPC_DO_LOOP, OPR_STID, TYPE_ID, WN_desc(), WN_opcode(), WN_operator(), and WN_start.
Referenced by SNL_BOUNDS_INFO::Canonicize(), ARA_LOOP_INFO::Create_New_IF_Clause(), ARA_LOOP_INFO::Create_Old_IF_Clause(), Finalize_Index_Variable(), Finalize_Index_Variable_For_Remove_Unity_Trip_Loop(), Find_Highest_Type_Of_Loop(), Freeze_Numthreads_Ldid(), Gather_Scatter_Scalar_Expand(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), Generate_Guard_Test(), Generate_Interleaved_Bounds(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), Initialize_Pdo_Last_Local_Index(), Interleaved_Pragma_Chunksize(), Lego_Skew_Index(), Lego_Skew_Loop(), Mp_Collapse_Loop_Heads(), Mp_Layout_Load_Pids(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), Perform_Gather_Scatter(), Processor_2D_Tile_Loop(), Processor_3D_Tile_Loop(), Processor_Update_Outer_Tile(), Rewrite_Bounds(), RV_Reverse_Index_Ldid(), Scalar_Expansion_Tile(), SE_Findxs(), SE_Indxs_and_Bounds(), SNL_GEN_2D_Regtile(), SNL_INV_Cache_Block(), SNL_Is_Transformable(), SNL_Regtile_Loop(), SNL_TRANS_INDEX_DATA::SNL_TRANS_INDEX_DATA(), Step_Size(), Trip_Count(), Twod_Setbound(), Unroll_Loop_By_Trip_Count(), and WBTR_Loop_Tiling().
Definition at line 314 of file lnoutils.cxx.
References i, INT, INT32, and s.
Referenced by SNL_GEN_U_Ctiling().
Definition at line 3248 of file lnoutils.cxx.
References Du_Sanity_Check_Matching_Du(), Du_Sanity_Check_r(), fprintf(), IV_Loop_Stmt_Check(), LNO_local_pool, LNO_Verbose, MEM_POOL_Pop, and MEM_POOL_Push.
Referenced by Lego_Lower_Pragmas(), Lego_Read_Pragmas(), Lnoptimizer(), and WB_check().
| void Du_Sanity_Check_Matching_Du | ( | STACK< WN * > * | read_stack, | |
| STACK< WN * > * | write_stack, | |||
| FILE * | fp, | |||
| UINT | fancy | |||
| ) |
Definition at line 2865 of file lnoutils.cxx.
References STACK< T >::Bottom_nth(), CXX_NEW_ARRAY, DU_MANAGER::Du_Get_Use(), Du_Mgr, Dump_WN(), STACK< T >::Elements(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), FALSE, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), SLIST_ITER::First(), USE_LIST_ITER::First(), fprintf(), getenv(), i, index(), BIT_VECTOR::Init(), INT, SLIST_ITER::Is_Empty(), LNO_local_pool, MEM_POOL_Pop, MEM_POOL_Push, SLIST_ITER::Next(), USE_LIST_ITER::Next(), NULL, OPC_FUNC_ENTRY, OPERATOR_name(), OPR_IO, read, BIT_VECTOR::Reset(), BIT_VECTOR::Set(), si, DU_MANAGER::Ud_Get_Def(), UINT, WN_map_id(), WN_opcode(), WN_operator(), and write.
Referenced by Du_Sanity_Check().
| static void Du_Sanity_Check_r | ( | WN * | wn, | |
| HASH_TABLE< WN *, INT > * | h_table, | |||
| UINT | pass, | |||
| FILE * | fp, | |||
| UINT | fancy, | |||
| STACK< WN * > * | reads, | |||
| STACK< WN * > * | writes | |||
| ) | [static] |
Definition at line 3004 of file lnoutils.cxx.
References Alias_Mgr, Aliased(), BOOL, CLASS_PREG, DU_MANAGER::Du_Get_Use(), Du_Mgr, Dump_WN(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), FALSE, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), SLIST_ITER::First(), USE_LIST_ITER::First(), fprintf(), getenv(), i, INT, SLIST_ITER::Is_Empty(), DEF_LIST::Loop_stmt(), LWN_Get_Parent, SLIST_ITER::Next(), USE_LIST_ITER::Next(), NOT_ALIASED, NULL, OPC_DO_LOOP, OPC_FUNC_ENTRY, OPCODE_has_barrier(), OPCODE_is_call(), OPCODE_is_load(), OPCODE_is_scf(), OPCODE_is_store(), OPCODE_operator(), OPERATOR_name(), OPR_ALTENTRY, OPR_BLOCK, OPR_FUNC_ENTRY, OPR_GOTO_OUTER_BLOCK, OPR_ILOAD, OPR_INTRINSIC_OP, OPR_IO, OPR_LABEL, OPR_LDID, OPR_PARM, OPR_RETURN, OPR_STID, Preg_Is_Dedicated, STACK< T >::Push(), ST_class, TRUE, TY_is_volatile, DU_MANAGER::Ud_Get_Def(), WN_first(), WN_index, WN_kid(), WN_kid_count(), WN_Label_Is_Handler_Begin, WN_map_id(), WN_next(), WN_offset(), WN_opcode(), WN_operator(), WN_st(), and WN_ty().
Referenced by Du_Sanity_Check().
| void Dump_WN | ( | WN * | wn, | |
| FILE * | f, | |||
| INT | fancy, | |||
| INT | ws, | |||
| INT | ws_inc, | |||
| ARRAY_DIRECTED_GRAPH16 * | dg, | |||
| WN ** | list, | |||
| WN * | parent, | |||
| BOOL | recursive | |||
| ) |
Definition at line 497 of file lnoutils.cxx.
References DevWarn, Dump_WN(), fflush(), fprintf(), Get_Do_Loop_Info(), i, INT, INT32, LWN_Get_Parent, OPC_BLOCK, OPC_COMPGOTO, OPC_DO_LOOP, OPC_DO_WHILE, OPC_FUNC_ENTRY, OPC_IF, OPC_REGION, OPC_WHILE_DO, OPCODE_has_next_prev(), OPERATOR_name(), DO_LOOP_INFO::Print(), printws(), TRUE, WN_do_body, wn_dumpexpr(), WN_else, WN_end, WN_first(), WN_Get_Linenum(), WN_if_test, WN_index, WN_kid(), WN_kid_count(), WN_next(), WN_opcode(), WN_operator(), WN_region_body, WN_start, WN_step, WN_then, WN_while_body, and WN_while_test.
Referenced by ARA_Initialize_Loops(), Do_Automatic_Transformation(), Du_Sanity_Check_Matching_Du(), Du_Sanity_Check_r(), Dump_WN(), Eliminate_Dead_Do(), Eliminate_Dead_If(), Fiss_Gather_Inner_Loop(), Fission_Inner_Loop(), Fuse(), Lnoptimizer(), Loop_Stmt_Update(), Max_Dep_Distance(), Perform_Gather_Scatter(), ARRAY_DIRECTED_GRAPH16::Print(), SNL_TRANS_INDEX_DATA::Print(), TRANSPOSE_DIRECTED_GRAPH16::Print(), Print_Def_Use(), Simd_Analysis(), SNL_GEN_U_Ctiling(), SNL_Transform(), and Vintrinsic_Fission().
Definition at line 3660 of file lnoutils.cxx.
References LWN_Get_Parent, NULL, OPR_DO_LOOP, and WN_operator().
Referenced by _xanalyze_stmt_for_conds(), Add_Barrier_Vertex(), Code_Expansion_Limit_Loop(), Convex_Peeling_Depth(), Enclosing_Do_Loop_Of_Chain(), Enclosing_Ith_Do_Loop(), Fiz_Fuse(), FS_Array_Worthwhile(), PF_LG::Gen_Pref_Node(), Highest_Guard_Point(), IPA_LNO_Read_Projected_Region(), LWN_Process_FF_Pragmas_Walk_r(), MIR_Test_Hoist(), Parallelization_Process_Deps(), Parallelize_Doacross_Loop(), Post_loop_peeling(), Recompute_Deps_For_Tree(), REGION::REGION(), Scalar_Expandable(), Scan_Parameters(), SE_Assign_Lexcounts(), SE_Final_Value(), SE_Findxs(), Simd(), Simd_Vectorize_Induction_Variables(), and Walk_Projected_Region().
Definition at line 3676 of file lnoutils.cxx.
References LWN_Get_Parent, NULL, OPR_DO_LOOP, OPR_DO_WHILE, OPR_WHILE_DO, and WN_operator().
Referenced by AS_Traverse(), BS_Has_Varying_Access_Array_In_Region(), BS_Loop_Within_Equivalence_Class(), Exp_Depends_On_Outer_Loop(), Exp_Node_Varies_In_Loop(), Fix_Accesses_And_Deps(), FS_Array_Single_Def_Use(), FS_Array_Substitute(), FS_Substitute(), FS_Worthwhile(), Sinkable_Into_Loop(), SNL_GEN_2D_Regtile(), SNL_Legal_Perm_Array(), SX_INFO::Update_Reduction_Loop_Stmts(), and Walk_Loop_Dependence().
Definition at line 3694 of file lnoutils.cxx.
References BOOL, FALSE, LWN_Get_Parent, NULL, OPR_BLOCK, OPR_DO_LOOP, OPR_DO_WHILE, OPR_WHILE_DO, TRUE, and WN_operator().
Referenced by SNL_Legal_Perm_Array().
Definition at line 3719 of file lnoutils.cxx.
References BOOL, FALSE, LWN_Get_Parent, NULL, OPC_BLOCK, OPC_DO_LOOP, TRUE, and WN_opcode().
Referenced by Fix_Exp_Deps(), Forward_Substitutable(), MIR_Patch_Loop_Stmt(), and Patch_Loop_Statement_Expression().
| BOOL Equivalent_Access_Arrays | ( | ACCESS_ARRAY * | array1, | |
| ACCESS_ARRAY * | array2, | |||
| WN * | wn1, | |||
| WN * | wn2 | |||
| ) |
Definition at line 3632 of file lnoutils.cxx.
References FALSE, FmtAssert, INT, ACCESS_ARRAY::Non_Const_Loops(), NULL, Num_Common_Loops(), and TRUE.
Referenced by BS_Matching_Load(), and Process_Store().
| static BOOL Exp_Depends_On_Outer_Loop | ( | WN * | wn_exp, | |
| SYMBOL | index_var, | |||
| ARRAY_DIRECTED_GRAPH16 * | dg, | |||
| DU_MANAGER * | du | |||
| ) | [static] |
Definition at line 3737 of file lnoutils.cxx.
References Enclosing_Loop(), FALSE, SLIST_ITER::First(), DIRECTED_GRAPH16< EDGE_TYPE, VERTEX_TYPE >::Get_Next_Out_Edge(), DIRECTED_GRAPH16< EDGE_TYPE, VERTEX_TYPE >::Get_Out_Edge(), DIRECTED_GRAPH16< EDGE_TYPE, VERTEX_TYPE >::Get_Sink(), ARRAY_DIRECTED_GRAPH16::Get_Vertex(), ARRAY_DIRECTED_GRAPH16::Get_Wn(), i, INT, SLIST_ITER::Is_Empty(), iter, SLIST_ITER::Next(), NULL, OPCODE_is_load(), OPR_ILOAD, OPR_LDID, TRUE, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), WN_kid(), WN_kid_count(), WN_opcode(), and WN_operator().
Referenced by Loop_Is_Trapezoidal().
Definition at line 4761 of file lnoutils.cxx.
References FmtAssert, i, and INT.
Referenced by Choose(), and Is_Legal_Permutation_Class().
Definition at line 3271 of file lnoutils.cxx.
References cur, Cur_PU_Feedback, DevWarn, INT32, LNO_Test_Dump, LWN_ITER, LWN_WALK_TreeIter, LWN_WALK_TreeNext, OPERATOR_name(), WN_MAP32_Get, WN_MAP_FEEDBACK, and WN_operator().
Definition at line 2375 of file lnoutils.cxx.
References DU_MANAGER::Add_Def_Use(), Array_Dependence_Graph, DU_MANAGER::Create_Use_List(), DU_MANAGER::Delete_Def_Use(), div(), Do_Loop_Has_Calls(), Do_Wtype(), DU_MANAGER::Du_Get_Use(), Du_Mgr, FALSE, USE_LIST_ITER::First(), FmtAssert, USE_LIST::Incomplete(), index(), SLIST_ITER::Is_Empty(), iter, LNO_Erase_Dg_From_Here_In(), LNO_Info_Map, LWN_Copy_Tree(), LWN_CreateExp1(), LWN_CreateExp2(), LWN_CreateStid(), LWN_Get_Parent, LWN_Insert_Block_After(), LWN_Insert_Block_Before(), max, MTYPE_F4, MTYPE_F8, MTYPE_I4, MTYPE_I8, MTYPE_is_float, MTYPE_V, USE_LIST_ITER::Next(), NULL, OPC_DO_LOOP, OPC_FUNC_ENTRY, OPCODE_make_op(), OPCODE_rtype(), OPR_ADD, OPR_CVT, OPR_DIV, OPR_IF, OPR_INTCONST, OPR_LDID, OPR_LE, OPR_MAX, OPR_MPY, OPR_STID, OPR_SUB, OPR_TRUNC, Patch_Uses_In_Loop(), Promote_Type(), USE_LIST::Reset_Incomplete(), scalar_rename(), USE_LIST::Set_Incomplete(), Sink_Out_Sandwiched_Statement(), Statement_Sinkable_Out_Of_Loop(), sub, TRUE, TYPE_ID, Update_Nest_Depth(), Upper_Bound_Standardize(), wn, WN_const_val(), WN_end, WN_kid0(), WN_kid1(), WN_opcode(), WN_operator(), WN_start, and WN_step.
Referenced by Eliminate_Dead_Do(), Fix_Array_Deps_On_Index_Variable(), Fuse(), HoistIf(), Lego_Skew_Loop(), Post_loop_peeling(), Pre_loop_peeling(), Simd_Pre_Analysis(), SNL_Finalize_Index_Variables(), SNL_Is_Transformable(), and Vintrinsic_Fission().
| void Finalize_Index_Variable_For_Remove_Unity_Trip_Loop | ( | WN * | loop, | |
| BOOL | insert_after_loop, | |||
| BOOL | try_sink | |||
| ) |
Definition at line 2541 of file lnoutils.cxx.
References DU_MANAGER::Add_Def_Use(), Array_Dependence_Graph, DU_MANAGER::Create_Use_List(), DU_MANAGER::Delete_Def_Use(), Do_Loop_Has_Calls(), Do_Wtype(), DU_MANAGER::Du_Get_Use(), Du_Mgr, FALSE, USE_LIST_ITER::First(), USE_LIST::Incomplete(), index(), SLIST_ITER::Is_Empty(), iter, LNO_Erase_Dg_From_Here_In(), LNO_Info_Map, LWN_Copy_Tree(), LWN_CreateExp2(), LWN_CreateStid(), LWN_Get_Parent, LWN_Insert_Block_After(), LWN_Insert_Block_Before(), MTYPE_V, USE_LIST_ITER::Next(), NULL, OPC_DO_LOOP, OPC_FUNC_ENTRY, OPCODE_make_op(), OPR_ADD, OPR_LDID, OPR_STID, Patch_Uses_In_Loop(), Promote_Type(), USE_LIST::Reset_Incomplete(), scalar_rename(), USE_LIST::Set_Incomplete(), Sink_Out_Sandwiched_Statement(), Statement_Sinkable_Out_Of_Loop(), TRUE, TYPE_ID, wn, WN_kid0(), WN_kid1(), WN_opcode(), WN_operator(), WN_start, and WN_step.
Referenced by Remove_Unity_Trip_Loop().
| HASH_TABLE<WN*,BOOL>* Find_Loops_Within | ( | WN * | orig, | |
| MEM_POOL * | pool | |||
| ) |
Definition at line 3529 of file lnoutils.cxx.
References CXX_NEW, and Find_Loops_Within_Walk().
Referenced by SX_INFO::Make_Sx_Info().
| static void Find_Loops_Within_Walk | ( | WN * | wn, | |
| HASH_TABLE< WN *, BOOL > * | ht | |||
| ) | [static] |
Definition at line 3505 of file lnoutils.cxx.
References HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), OPR_BLOCK, OPR_DO_LOOP, OPR_DO_WHILE, OPR_IF, OPR_WHILE_DO, TRUE, WN_do_body, WN_else, WN_first(), WN_next(), WN_operator(), WN_then, and WN_while_body.
Referenced by Find_Loops_Within().
Definition at line 4587 of file lnoutils.cxx.
References Find_Node(), i, INT, NULL, OPC_BLOCK, OPCODE_has_sym(), WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_opcode().
Referenced by Find_Node(), Generate_Interleaved_Bounds(), Generate_Simple_Bounds(), Lego_Skew_Offset(), Mp_Nested_Last_Thread(), Post_loop_peeling(), SNL_Access_Index_Section(), SNL_Access_Linear_Section(), and SNL_Access_Nonlinear_Section().
Definition at line 2036 of file lnoutils.cxx.
References FmtAssert, opc, OPCODE_desc(), OPCODE_make_op(), OPCODE_operator(), OPCODE_rtype(), OPR_GE, OPR_GT, OPR_LE, OPR_LT, WN_opcode(), and WN_set_opcode().
Referenced by Solve_For().
Definition at line 3992 of file lnoutils.cxx.
References Is_True, LWN_Get_Parent, NULL, OPR_FUNC_ENTRY, OPR_REGION, REGION_get_rid(), and WN_operator().
Referenced by Create_Single_Region(), ARA_LOOP_INFO::Generate_Copyout_Loop(), and ARA_LOOP_INFO::Generate_Parallel_Pragma().
Definition at line 1943 of file lnoutils.cxx.
References defs, Du_Mgr, SLIST_ITER::First(), Get_ST_Base(), DEF_LIST::Incomplete(), SLIST_ITER::Is_Empty(), iter, SLIST_ITER::Next(), node, NULL, OPR_LDA, OPR_LDID, OPR_STID, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), WN_kid0(), WN_operator(), and WN_st().
Definition at line 1923 of file lnoutils.cxx.
References base, ST_base, and tmp.
Referenced by Get_ST_Base(), Identical_Array_Refbase(), Matching_Stores(), MIR_Build_Loop_List_Array(), and New_Gather_References().
Definition at line 744 of file lnoutils.cxx.
References Do_Loop_Is_Good(), FmtAssert, Good_Do_Depth(), INT, LWN_Get_Parent, NULL, OPC_DO_LOOP, and WN_opcode().
Referenced by Fuse(), Good_Do_Depth(), LWN_Process_FF_Pragmas_Walk_r(), MIR_Replace(), Post_loop_peeling(), Pre_loop_peeling(), SNL_NEST_INFO::SNL_NEST_INFO(), and Split_Array().
Definition at line 4614 of file lnoutils.cxx.
References FALSE, i, INT, and TRUE.
Referenced by Distribute_Traverse(), LNO_FB_Inv_Interchange(), Parallel_Interchange(), Prompf_Interchange(), SNL_GEN_Permute_Loops(), SNL_INV_Permute_Loops(), and SNL_INV_Transforms().
Definition at line 4718 of file lnoutils.cxx.
References FALSE, LWN_Get_Parent, NULL, OPC_DO_LOOP, OPR_LDID, OPR_STID, TRUE, WN_index, WN_opcode(), and WN_operator().
Referenced by SD_INFO::Make_Sd_Info(), and SD_INFO::Push_Memory_Nodes().
Definition at line 2022 of file lnoutils.cxx.
References Is_Used(), WN_index, and WN_start.
Referenced by Minimal_Kernel(), and SNL_Is_Transformable().
Definition at line 1996 of file lnoutils.cxx.
References All_Uses_Within(), WN_start, and WN_step.
Referenced by Eliminate_Dead_Do(), ARA_LOOP_INFO::Generate_Copyout_Loop(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Guard_A_Do(), Highest_Condition_Point(), HoistIf(), Lego_Skew_Loop(), Minimal_Kernel(), Remove_Unity_Trip_Loop(), Remove_Zero_Trip_Loop(), Simd_Pre_Analysis(), SNL_Finalize_Index_Variables(), SNL_Is_Transformable(), Trip_Reducible_Loop(), Unifiable_Loop(), and Vintrinsic_Fission().
| static void Initialize_Symbols | ( | STACK< SYMBOL > & | symbols, | |
| STACK< WN * > & | loops, | |||
| WN * | wn | |||
| ) | [static] |
Definition at line 3227 of file lnoutils.cxx.
References LWN_Get_Parent, OPC_DO_LOOP, STACK< T >::Push(), WN_index, and WN_opcode().
Referenced by IV_Loop_Stmt_Check().
Definition at line 4549 of file lnoutils.cxx.
References Common_Ancestor(), FALSE, FmtAssert, i, INT, LWN_Get_Parent, NULL, OPC_BLOCK, TRUE, WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_opcode().
Referenced by Fix_Deps_For_Load(), and PF_LG::Gen_Pref_Node().
Definition at line 3876 of file lnoutils.cxx.
References base, Current_Symtab, CURRENT_SYMTAB, FALSE, OPR_ARRAY, OPR_LDA, OPR_LDID, SCLASS_BASED, ST_base_idx(), ST_level, ST_sclass, ST_st_idx, ST_symtab_id, SYMTAB_id, TRUE, WN_array_base, WN_operator(), and WN_st().
Definition at line 3398 of file lnoutils.cxx.
References Array_Dependence_Graph, dg, FALSE, DIRECTED_GRAPH16< EDGE_TYPE, VERTEX_TYPE >::Get_In_Edge(), DIRECTED_GRAPH16< EDGE_TYPE, VERTEX_TYPE >::Get_Next_In_Edge(), DIRECTED_GRAPH16< EDGE_TYPE, VERTEX_TYPE >::Get_Source(), ARRAY_DIRECTED_GRAPH16::Get_Vertex(), ARRAY_DIRECTED_GRAPH16::Get_Wn(), i, INT, Is_Loop_Invariant_Exp(), Is_Loop_Invariant_Use(), NULL, OPCODE_is_call(), OPR_ILOAD, OPR_INTRINSIC_OP, OPR_LDID, Statically_Safe_Node(), TRUE, Wn_Is_Inside(), WN_kid(), WN_kid0(), WN_kid_count(), WN_opcode(), WN_operator(), and WN_Parm_By_Reference.
Referenced by Is_Loop_Invariant_Exp(), MIR_Hoistable_Ref(), Non_Const_Loops(), SNL_Is_Invariant(), and Unit_Stride_Reference().
Definition at line 3360 of file lnoutils.cxx.
References Du_Mgr, FALSE, SLIST_ITER::First(), FmtAssert, SLIST_ITER::Is_Empty(), iter, SLIST_ITER::Next(), node, NULL, OPR_CALL, OPR_GOTO_OUTER_BLOCK, OPR_ICALL, OPR_ILOAD, OPR_INTRINSIC_CALL, OPR_IO, OPR_ISTORE, OPR_LDID, OPR_RETURN, TRUE, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), Wn_Is_Inside(), and WN_operator().
Referenced by Is_Loop_Invariant_Exp(), and Same_Invariant_Expression().
Definition at line 3945 of file lnoutils.cxx.
References FALSE, FmtAssert, NULL, OPC_REGION, REGION_get_rid(), RID_TYPE_mp, TRUE, and WN_opcode().
Definition at line 4002 of file lnoutils.cxx.
References Get_Do_Loop_Info(), DO_LOOP_INFO::Mp_Info, MP_INFO::Nest_Total(), and NULL.
Referenced by Eliminate_Dead_Do(), Eliminate_Dead_SCF_rec(), Fully_Unroll_Short_Loops(), Remove_Unity_Trip_Loop(), Remove_Zero_Trip_Loop(), and SNL_Finalizable_Loops().
Definition at line 3312 of file lnoutils.cxx.
References alloca, FALSE, i, INT, save, and TRUE.
Referenced by Load_SNL_And_Permutation(), LWN_Process_FF_Pragmas_Walk_r(), One_Cache_Model(), Permutation(), Permutation_Vector(), Reduced_Permutation(), SE_Permutation_To_Order(), SNL_INV_Local_Permute_Loops(), SNL_Scalar_Expand_For_Splitting(), Unimodular_To_Permutation(), and Update_Available_Order().
Definition at line 2002 of file lnoutils.cxx.
References FALSE, i, INT, OPR_BLOCK, OPR_LDID, TRUE, WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_operator().
Referenced by Index_Variable_Live_At_Entry().
Definition at line 3240 of file lnoutils.cxx.
References Initialize_Symbols(), IV_Loop_Stmt_Check_X(), LWN_Get_Parent, and symbols.
Referenced by Du_Sanity_Check().
| static void IV_Loop_Stmt_Check_X | ( | STACK< SYMBOL > & | symbols, | |
| STACK< WN * > & | loops, | |||
| WN * | wn | |||
| ) | [static] |
Definition at line 3178 of file lnoutils.cxx.
References STACK< T >::Bottom_nth(), DevWarn, Du_Mgr, STACK< T >::Elements(), i, DEF_LIST::Incomplete(), INT, DEF_LIST::Loop_stmt(), SYMBOL::Name(), NULL, OPR_BLOCK, OPR_DO_LOOP, OPR_IO, OPR_LDID, STACK< T >::Pop(), STACK< T >::Push(), DEF_LIST::Set_loop_stmt(), DU_MANAGER::Ud_Get_Def(), void, WN_do_body, WN_end, WN_first(), WN_index, WN_kid(), WN_kid_count(), WN_next(), WN_operator(), WN_start, and WN_step.
Referenced by IV_Loop_Stmt_Check().
Definition at line 3584 of file lnoutils.cxx.
| void LNO_Erase_Vertices_In_Loop | ( | WN * | wn, | |
| ARRAY_DIRECTED_GRAPH16 * | dg | |||
| ) |
Definition at line 2856 of file lnoutils.cxx.
References INT, LNO_Erase_Vertices_In_Loop_Rec(), LWN_Get_Parent, OPC_DO_LOOP, WN_kid(), WN_kid_count(), and WN_opcode().
Referenced by Parallelize_Doacross_Loop().
| static void LNO_Erase_Vertices_In_Loop_Rec | ( | WN * | wn, | |
| ARRAY_DIRECTED_GRAPH16 * | dg | |||
| ) | [static] |
Definition at line 2831 of file lnoutils.cxx.
References ARRAY_DIRECTED_GRAPH16::Delete_Vertex(), ARRAY_DIRECTED_GRAPH16::Get_Vertex(), INT, OPC_BLOCK, OPC_DO_LOOP, opcode, OPCODE_is_call(), OPCODE_is_load(), OPCODE_is_store(), OPCODE_operator(), OPR_INTRINSIC_OP, WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_opcode().
Referenced by LNO_Erase_Vertices_In_Loop().
| ST* Lookup_Function_Name | ( | const char * | name | ) |
Definition at line 1322 of file lnoutils.cxx.
References Be_Type_Tbl, CLASS_FUNC, Enter_ST, Enter_TY, EXPORT_PREEMPTIBLE, FmtAssert, FOREACH_SYMBOL, GLOBAL_SYMTAB, i, INT, KIND_FUNCTION, Make_Pointer_Type(), MTYPE_I4, MTYPE_U1, MTYPE_UNKNOWN, New_FTI(), New_ST(), New_TY(), New_TYLIST(), Save_Str(), SCLASS_EXTERN, SCLASS_TEXT, Set_ST_sclass, Set_TY_align, Set_TY_size, Set_TY_tylist(), ST_class, ST_Init(), ST_name, ST_type, strcmp(), TRUE, TY_ftinfo, TY_Init(), TY_kind, TY_name, TY_ret_type, Tylist_Table, and Void_Type.
Definition at line 4093 of file lnoutils.cxx.
References Do_Loop_Depth(), LWN_Get_Parent, NULL, OPC_DO_LOOP, and WN_opcode().
Referenced by SD_INFO::Create(), HMB_Has_Messy_Subscript(), HMB_Push_Messy_Expressions(), Hoist_Iload_Ldid_Upper_Bound_One_Level(), Hoist_Out_Nested_Statements(), Hoist_Point(), Hoist_Statement(), Hoist_Statements(), Hoistable_Statement(), Inv_Dep_Info(), Invariant_Red_Depth(), Loop_Statement(), PAR_STAT::PAR_STAT(), Red_Dep_Info(), Region_Depth(), and SD_INFO::Update().
| BOOL Loop_Is_Trapezoidal | ( | WN * | wn_loop, | |
| ARRAY_DIRECTED_GRAPH16 * | dg, | |||
| DU_MANAGER * | du | |||
| ) |
Definition at line 3773 of file lnoutils.cxx.
References Exp_Depends_On_Outer_Loop(), FALSE, TRUE, WN_end, WN_start, and WN_step.
Referenced by Inner_Loop_Is_Trapezoidal().
Definition at line 4459 of file lnoutils.cxx.
References FmtAssert, OPC_DO_LOOP, OPR_ADD, OPR_LDID, WN_kid0(), WN_kid1(), WN_opcode(), WN_operator(), and WN_step.
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 3299 of file lnoutils.cxx.
References DevWarn, INT64, LWN_Get_Parent, and WN_Get_Linenum().
Referenced by Check_Invalid_Accesses(), DISTR_ARRAY::Convert_Expr_To_Symbol(), Do_Automatic_Transformation(), Fission(), Fission_Test(), Gen_Alloc_DART(), Gen_Alloc_Reshape(), Gen_Compare_DARTS(), Gen_Dealloc_DART(), Gen_HT_DART(), Gen_Init_DART(), Gen_Lookup_DART(), Gen_Migrate_Array(), PF_LG::Gen_Pref_Node(), Gen_Symbols_In_DINFO(), Get_Callee_TY(), Is_Reshaped_Array_Expr(), Read_Pragma_Page_Place(), Rewrite_Reshaped_Commons(), and WN_Whirl_Linenum().
Definition at line 1228 of file lnoutils.cxx.
References INT, LWN_CreateExp1(), OPCODE_make_op(), OPR_CVT, and sz().
Referenced by Freeze_Numthreads_Ldid(), Generate_Dynamic_Bounds(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), LWN_Integer_Casts(), and Processor_Update_Outer_Tile().
Definition at line 1239 of file lnoutils.cxx.
References bitcount(), FALSE, FmtAssert, LWN_Integer_Cast(), LWN_Parentize_One_Level(), LWN_Short_Integer_Cast(), MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, MTYPE_UNKNOWN, OPC_I4CVTL, OPC_U4CVTL, TYPE_ID, and WN_CreateCvtl.
Referenced by Mp_Coordinate_Call(), Mp_Coordinate_Copy_Out_Coordinates(), Mp_Layout_Call(), and Mp_Layout_Copy_Out_Layout().
Definition at line 93 of file lnoutils.cxx.
References MTYPE_V, OPCODE_make_op(), OPR_INTCONST, and WN_CreateIntconst.
Referenced by Add_To_Symbol(), Affinity_Array_Lower_Bound(), Affinity_Array_Upper_Bound(), BND_Max_Expr(), BND_Min_Expr(), DISTR_DIM::Chunksize(), Constant_Propogate(), Copy_Array(), Create_Array_Load(), Create_Array_Store(), Create_Initialize_Loop(), 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(), ARA_LOOP_INFO::Create_New_IF_Clause(), ARA_LOOP_INFO::Create_Old_IF_Clause(), Create_Positive_Divceil(), Create_Tmp_Array(), Current_Numprocs(), ARRAY_DESCRIPTOR::Distribute_Array(), EC_Array_Portion_Calls(), Extended_Lower_Bound(), Extended_Upper_Bound(), Fold_Base(), Fold_Offset(), Fuse(), Gather_Scatter_Scalar_Expand(), Gen_Alloc_DART(), Gen_Init_DART(), Gen_Malloc_Cart(), PF_LG::Gen_Pref_Node(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), generate_tree_add(), generate_tree_from_bounds_info_row(), generate_tree_from_row(), Get_Array_Dimension_LB(), Get_Array_Dimension_Size(), Get_Runtime_Numthreads_Ldid(), Increase_By(), Initialize_Pdo_Last_Local_Index(), Instrument_Address(), Interleaved_Pragma_Chunksize(), Lego_Index_From_Access_Vector(), Lego_Skew_Offset(), ARRAY_LOWER_REF::Lower_Array_Expr(), Lower_Bound_In_Affinity_Range(), Mark_Code(), Mp_Coordinate_Call(), Mp_Layout_Call(), Mp_Layout_Copy_In_Onto(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), New_DACT(), Parallelize_Doacross_Loop(), Perform_Gather_Scatter(), Post_loop_peeling(), Pre_loop_peeling(), Processor_Update_Outer_Tile(), Promote_Pointer(), Rewrite_Bounds(), SE_Array(), SE_Findxs(), SE_Indxs_and_Bounds(), SE_Wrap_Array(), SNL_Access_Index_Section(), SNL_Access_Linear_Section(), SNL_Access_Nonlinear_Section(), SNL_GEN_2D_Regtile(), SNL_INV_Cache_Block(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Peel_Iteration(), SNL_SPL_Fix_First_Outer_Loop_Limits(), STD_Canonicalize_Upper_Bound(), Step_Size(), Thread_Affinity_Lower(), Trip_Count(), Trip_Reduce_Loop(), Upper_Bound_In_Affinity_Range(), Upper_Bound_Standardize(), Version_Loop(), and Version_Region().
Definition at line 951 of file lwn_util.cxx.
References i, INT, LWN_Set_Parent, WN_kid(), and WN_kid_count().
Referenced by LWN_CreateCvtl(), LWN_CreateDivceil(), LWN_CreateDivfloor(), LWN_CreateExp1(), LWN_CreateExp2(), LWN_CreateIload(), LWN_CreateMload(), LWN_CreateParm(), LWN_Integer_Casts(), and LWN_Short_Integer_Cast().
Definition at line 1197 of file lnoutils.cxx.
References LWN_Parentize_One_Level(), MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_UNKNOWN, NULL, OPC_I4CVTL, OPC_U4CVTL, result, TYPE_ID, and WN_CreateCvtl.
Referenced by LWN_Integer_Casts().
| LOOP_MAPPING* Make_Loop_Mapping | ( | WN * | orig, | |
| WN * | copy, | |||
| MEM_POOL * | pool | |||
| ) |
Definition at line 3489 of file lnoutils.cxx.
References CXX_NEW, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), SNL_Make_Loop_Mapping_Inside(), and WN_do_body.
Referenced by SNL_Regtile_Loop(), and SX_INFO::SX_INFO().
Definition at line 3828 of file lnoutils.cxx.
References FmtAssert, OPCODE_desc(), OPCODE_is_load(), OPCODE_is_store(), OPCODE_make_op(), OPCODE_operator(), OPERATOR_FIRST, OPR_ILOAD, OPR_ILOADX, OPR_ISTORE, OPR_ISTOREX, OPR_LDID, OPR_MLOAD, OPR_MSTORE, OPR_STID, and Promote_Type().
Referenced by Create_ILoad_From_IStore(), and Lego_Index_From_Access_Vector().
Definition at line 690 of file lnoutils.cxx.
References MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_V, and TYPE_ID.
Referenced by ARRAY_LOWER_REF::Create_Remote_Blkcyc_Dim(), ARRAY_LOWER_REF::Create_Remote_Block_Dim(), ARRAY_LOWER_REF::Create_Remote_Cyclic_Dim(), Extended_Lower_Bound(), Extended_Upper_Bound(), generate_tree_from_bounds_info_row(), IFMM_Convert(), Lego_Index_From_Access_Vector(), Lego_Skew_Offset(), Mp_Trip_Count(), SE_Indxs_and_Bounds(), SNL_Opr(), and SNL_TRANS_INDEX_DATA::SNL_TRANS_INDEX_DATA().
Definition at line 4918 of file lnoutils.cxx.
References ACCESS_ARRAY::Dim(), i, INT, LNO_Info_Map, LWN_Get_Parent, NULL, ACCESS_ARRAY::Num_Vec(), OPR_ARRAY, ACCESS_VECTOR::Too_Messy, ACCESS_ARRAY::Too_Messy, WN_MAP_Get, and WN_operator().
Referenced by HMB_Hoist_Easy_Messy_Subscripts(), MIR_Messy_Subscript(), and MIR_Update_Dependences().
| static WN* Normal_Outer_Tile | ( | WN * | wn_loop, | |
| DU_MANAGER * | du | |||
| ) | [static] |
Definition at line 4381 of file lnoutils.cxx.
References LWN_Get_Parent, NULL, OPC_DO_LOOP, Outer_Tile(), Symbol_In_Expression(), Unique_Ldid_Symbol(), Wind_Down_Parent(), WN_end, WN_index, WN_opcode(), and WN_start.
Referenced by Outer_Tile().
Definition at line 3576 of file lnoutils.cxx.
References Do_Depth(), and LNO_Common_Loop().
Referenced by _xdependence_is_preserved(), Convert_Do_Loops_Conditionals(), Create_Shackle_If_Per_Stmt(), Equivalent_Access_Arrays(), Remove_Redundant_And_Inconsistent_If(), and Sink_If2do().
| WN* Outer_Tile | ( | WN * | wn_loop, | |
| DU_MANAGER * | du | |||
| ) |
Definition at line 4407 of file lnoutils.cxx.
References Do_Depth(), Get_Do_Loop_Info(), DO_LOOP_INFO::Lego_Mp_Key_Lower, DO_LOOP_INFO::Lego_Mp_Key_Upper, LWN_Get_Parent, Normal_Outer_Tile(), NULL, OPC_DO_LOOP, and WN_opcode().
Referenced by Cache_Model(), Is_Outer_Tile(), Normal_Outer_Tile(), SNL_GEN_U_Ctiling(), and WB_access().
Definition at line 2289 of file lnoutils.cxx.
References Do_Loop_Depth(), Do_Loop_Is_Good(), LWN_Get_Parent, NULL, OPC_DO_LOOP, and WN_opcode().
Definition at line 2271 of file lnoutils.cxx.
References Do_Loop_Depth(), LWN_Get_Parent, OPC_DO_LOOP, and WN_opcode().
Definition at line 2314 of file lnoutils.cxx.
References DU_MANAGER::Add_Def_Use(), Alias_Mgr, Aliased(), Du_Mgr, LWN_ITER, LWN_WALK_TreeIter, LWN_WALK_TreeNext, NOT_ALIASED, NULL, OPCODE_is_load(), wn, and WN_opcode().
Referenced by Finalize_Index_Variable(), and Finalize_Index_Variable_For_Remove_Unity_Trip_Loop().
Definition at line 4776 of file lnoutils.cxx.
References CXX_NEW_ARRAY, i, INT, Is_Permutation_Vector(), Is_True, LNO_local_pool, and next_index.
Definition at line 1512 of file lnoutils.cxx.
References defs, DevWarn, DU_MANAGER::Du_Get_Use(), Du_Mgr, Dump_WN(), SLIST_ITER::First(), USE_LIST_ITER::First(), fprintf(), DEF_LIST::Incomplete(), USE_LIST::Incomplete(), INT, SLIST_ITER::Is_Empty(), iter, DEF_LIST::Loop_stmt(), LWN_Get_Parent, SLIST_ITER::Next(), USE_LIST_ITER::Next(), node, NULL, OPC_BLOCK, OPC_DO_LOOP, OPC_FUNC_ENTRY, OPC_IO, opcode, OPCODE_operator(), OPERATOR_name(), OPR_CALL, OPR_FUNC_ENTRY, OPR_GOTO_OUTER_BLOCK, OPR_ICALL, OPR_ILOAD, OPR_INTRINSIC_CALL, OPR_IO, OPR_ISTORE, OPR_LDID, OPR_RETURN, OPR_STID, Print_Def_Use(), TRUE, DU_MANAGER::Ud_Get_Def(), wn_dumpexpr(), WN_first(), WN_index, WN_kid(), WN_kid_count(), WN_next(), and WN_opcode().
Referenced by Print_Def_Use(), separate_loop_by_scc(), and SNL_Transform().
Definition at line 4010 of file lnoutils.cxx.
References DO_LOOP_INFO::Depth, INT, Is_True, LNO_Info_Map, OPC_BLOCK, OPC_DO_LOOP, Remark_Depth(), WN_first(), WN_kid(), WN_kid_count(), WN_MAP_Get, WN_next(), and WN_opcode().
| void Remove_Redundant_Stids | ( | WN * | wn_start, | |
| DU_MANAGER * | du | |||
| ) |
Definition at line 3794 of file lnoutils.cxx.
References DU_MANAGER::Du_Get_Use(), USE_LIST_ITER::First(), i, USE_LIST::Incomplete(), INT, iter, LWN_Delete_Tree(), LWN_Extract_From_Block(), NULL, OPC_BLOCK, OPR_STID, Remove_Redundant_Stids(), WN_first(), WN_kid(), WN_kid_count(), WN_next(), WN_opcode(), and WN_operator().
Referenced by Remove_Redundant_Stids(), and SNL_Peel_Iteration().
Definition at line 4940 of file lnoutils.cxx.
References buf, Create_Preg_Symbol(), Fix_Do_Du_Info(), INT, Name, NULL, offset, Replace_Symbol(), sprintf(), TRUE, TYPE_ID, WN_desc(), WN_index, WN_offset(), WN_st(), and WN_start.
Referenced by SNL_SPL_Split_Tile_Sets().
| void Replace_Ldid_With_Exp_Copy | ( | SYMBOL | symbol, | |
| WN * | wn, | |||
| WN * | expr, | |||
| DU_MANAGER * | du, | |||
| ARRAY_DIRECTED_GRAPH16 * | dep_graph | |||
| ) |
Definition at line 1120 of file lnoutils.cxx.
References INT, NULL, OPR_BLOCK, OPR_DO_LOOP, OPR_DO_WHILE, OPR_IF, OPR_LDID, OPR_WHILE_DO, Replace_Ldid_With_Exp_Copy(), Replace_Wnexp_With_Exp_Copy(), void, WN_do_body, WN_else, WN_end, WN_first(), WN_if_test, WN_kid(), WN_kid_count(), WN_next(), WN_operator(), WN_start, WN_step, WN_then, WN_while_body, and WN_while_test.
Referenced by Fuse(), Guard_A_Do(), Guard_Test_Redundant(), Post_loop_peeling(), Pre_loop_peeling(), Remove_Unity_Trip_Loop(), Replace_Ldid_With_Exp_Copy(), return_upper_bound(), Rewrite_Bounds(), SE_Guard_Tests(), SNL_GEN_2D_Regtile(), SNL_Peel_Iteration(), Transform_Code(), and Vintrinsic_Fission().
| WN* Replace_Scalar_Store_With_Array_Store | ( | WN * | scalar_store, | |
| WN * | array_store, | |||
| DU_MANAGER * | du | |||
| ) |
Definition at line 1098 of file lnoutils.cxx.
References LWN_Copy_Frequency_Tree(), LWN_Copy_Tree(), LWN_Delete_Tree(), LWN_Extract_From_Block(), LWN_Get_Parent, LWN_Insert_Block_Before(), LWN_Set_Parent, NULL, WN_kid0(), and WN_kid1().
Referenced by BS_Replace_Store().
Definition at line 787 of file lnoutils.cxx.
References Alias_Mgr, buf, CLASS_PREG, Copy_alias_info(), Create_alias(), DU_MANAGER::Delete_Def_Use(), DevWarn, DU_MANAGER::Du_Get_Use(), Du_Mgr, SLIST_ITER::First(), USE_LIST_ITER::First(), FmtAssert, INT, SLIST_ITER::Is_Empty(), Is_True, iter, LWN_Get_Parent, SYMBOL::Name(), SLIST_ITER::Next(), USE_LIST_ITER::Next(), node, NULL, OPC_BLOCK, OPCODE_has_sym(), OPCODE_operator(), OPR_LDID, OPR_STID, p, Replace_Symbol(), SYMBOL::St(), ST_class, ST_st_idx, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), WN_first(), WN_kid(), WN_kid_count(), WN_next(), SYMBOL::WN_Offset(), WN_offset(), WN_opcode(), and WN_st_idx().
Referenced by Copy_Array_Section(), Freeze_Numthreads_Ldid(), Fuse(), Gather_Scatter_Scalar_Expand(), Mp_Collapse_Cleanup(), Perform_Gather_Scatter(), Replace_Index_Variable(), Replace_Symbol(), Replace_Symbols(), Rewrite_Bounds(), Simd_Align_Analysis(), SNL_GEN_2D_Regtile(), SNL_INV_Cache_Block(), and Wind_Down().
| void Replace_Symbols | ( | WN * | wn, | |
| SYMBOL * | sold, | |||
| SYMBOL * | snew, | |||
| INT | count, | |||
| WN ** | alias_wn, | |||
| WN ** | ancestors | |||
| ) |
Definition at line 863 of file lnoutils.cxx.
References Alias_Mgr, buf, CLASS_PREG, Copy_alias_info(), Create_alias(), DU_MANAGER::Delete_Def_Use(), DevWarn, DU_MANAGER::Du_Get_Use(), Du_Mgr, SLIST_ITER::First(), USE_LIST_ITER::First(), FmtAssert, i, INT, SLIST_ITER::Is_Empty(), Is_True, iter, LWN_Get_Parent, Name, SLIST_ITER::Next(), USE_LIST_ITER::Next(), node, NULL, OPC_BLOCK, OPCODE_has_sym(), OPCODE_operator(), OPR_LDID, OPR_STID, p, Replace_Symbol(), Replace_Symbols(), ST_class, ST_st_idx, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), WN_first(), WN_kid(), WN_kid_count(), WN_next(), SYMBOL::WN_Offset(), WN_offset(), WN_opcode(), and WN_st_idx().
Referenced by Replace_Symbols(), and SNL_Regtile_Loop().
| WN* Replace_Wnexp_With_Exp_Copy | ( | WN * | wn, | |
| WN * | expr, | |||
| DU_MANAGER * | du, | |||
| BOOL * | added_cvt, | |||
| ARRAY_DIRECTED_GRAPH16 * | dep_graph | |||
| ) |
Definition at line 1030 of file lnoutils.cxx.
References BOOL, copy, FALSE, INT, Is_True, LNO_Erase_Dg_From_Here_In(), LNO_Info_Map, LWN_Copy_Frequency_Tree(), LWN_Copy_Tree(), LWN_Delete_Tree(), LWN_Get_Parent, LWN_Int_Type_Conversion(), LWN_Set_Parent, mtype, MTYPE_byte_size, MTYPE_complement, MTYPE_is_integral, MTYPE_is_signed, NULL, OPCODE_is_expression(), OPR_CVT, OPR_CVTL, OPR_ILOAD, OPR_LDID, TRUE, TYPE_ID, WN_desc(), WN_kid(), WN_kid_count(), WN_opcode(), WN_operator(), WN_rtype(), WN_set_desc(), and WN_set_rtype().
Referenced by BS_Replace_Load(), FS_Array_Substitute(), FS_Substitute(), HMB_Replace_Messy_Bounds(), Lego_Simplify(), Lego_Skew_Loop(), LWN_Copy_Tree_With_High_Defs(), Processor_Update_Inner_Tile(), Processor_Update_Outer_Tile(), Replace_Ldid_With_Exp_Copy(), SNL_Finalize_Loops(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Peel_Iteration(), Trip_Reduce_Loop(), Unify_Loop(), UT_Body_Exp(), and ut_body_exp_pre().
Definition at line 1409 of file lnoutils.cxx.
References Is_True, OPC_BLOCK, OPC_DO_LOOP, OPC_DO_WHILE, OPC_IF, OPC_WHILE_DO, Reset_Do_Loop_Depths(), wn, WN_else, WN_first(), WN_next(), WN_opcode(), WN_then, WN_while_body, and WN_while_test.
Referenced by Reset_Do_Loop_Depths().
Definition at line 1430 of file lnoutils.cxx.
References DO_LOOP_INFO::Depth, Get_Do_Loop_Info(), DO_LOOP_INFO::Is_Inner, Is_True, OPC_DO_LOOP, reset_do(), WN_do_body, and WN_opcode().
Referenced by Create_Simple_Shackle_Loops(), and reset_do().
Definition at line 4439 of file lnoutils.cxx.
References LWN_CreateReturn(), LWN_Get_Parent, LWN_Insert_Block_After(), NULL, OPC_RETURN, WN_first(), WN_func_body, WN_next(), and WN_opcode().
Referenced by Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Interleaved_Bounds(), Mp_Nested_Last_Thread(), and RR_Map_Setup_Traverse().
| static void SNL_Make_Loop_Mapping_Inside | ( | WN * | orig, | |
| WN * | copy, | |||
| LOOP_MAPPING * | ht | |||
| ) | [static] |
Definition at line 3452 of file lnoutils.cxx.
References HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), FmtAssert, Is_True, NULL, OPC_BLOCK, OPC_DO_LOOP, OPC_IF, WN_do_body, WN_else, WN_first(), WN_next(), WN_opcode(), and WN_then.
Referenced by Make_Loop_Mapping().
Definition at line 2052 of file lnoutils.cxx.
References BOOL, FALSE, Flip_Le_And_Ge(), FmtAssert, INT, Is_True, lr, LWN_CreateDivceil(), LWN_CreateDivfloor(), LWN_Parentize(), MTYPE_complement, MTYPE_I4, MTYPE_I8, MTYPE_is_unsigned, MTYPE_V, ok(), OPCODE_desc(), OPCODE_is_load(), OPCODE_make_op(), OPCODE_operator(), OPCODE_rtype(), OPR_ADD, OPR_CVT, OPR_GE, OPR_GT, OPR_INTCONST, OPR_LE, OPR_LT, OPR_MPY, OPR_NEG, OPR_SUB, out, r, Symbol_Count(), TRUE, TYPE_ID, void, WN_const_val(), WN_CreateExp1, WN_Delete, WN_kid0(), WN_kid1(), WN_kid_count(), WN_opcode(), WN_operator(), WN_rtype(), WN_set_opcode(), WN_Simplifier_Enable(), and WN_Simplify_Tree().
Referenced by Fiss_Gather_Inner_Loop(), and Upper_Bound_Standardize().
Definition at line 1506 of file lnoutils.cxx.
References Alias_Mgr, and WN_Expr_Can_Be_Speculative().
Referenced by Guard_A_Do(), Has_Statically_Safe_Messy_Bounds(), HMB_Hoist_Easy_Messy_Subscripts(), Hoist_Conditionals(), and Is_Messy_Expression().
Definition at line 1495 of file lnoutils.cxx.
References Alias_Mgr, and WN_Can_Be_Speculative().
Referenced by Hoist_Place(), and Is_Loop_Invariant_Exp().
Definition at line 114 of file lnoutils.cxx.
References BOOL, DevWarn, Do_Wtype(), FmtAssert, index(), INT, INT64, LWN_Delete_Tree(), LWN_Make_Icon(), LWN_Set_Parent, neg(), OPC_DO_LOOP, OPERATOR_name(), OPR_ADD, OPR_INTCONST, OPR_LDID, OPR_STID, OPR_SUB, ST_name, step(), tmp, WN_const_val(), WN_index, WN_kid(), WN_kid0(), WN_kid1(), WN_offset(), WN_opcode(), WN_operator(), WN_st(), and WN_step.
Referenced by SNL_BOUNDS_INFO::Collect_Do_Info(), SUMMARIZE< program >::Easy_Trip_Count(), Gather_Scatter_Scalar_Expand(), General_Kernel(), Generate_Runtime_Cyclic_Bounds(), LEGO_INFO::Get_Local_Step(), Iterations(), Iters(), Loop_Bounds_Simple(), Num_Iters(), Post_loop_peeling(), Pre_loop_peeling(), Rewrite_Bounds(), separate_loop_and_scalar_expand(), SNL_GEN_2D_Regtile(), SNL_INV_Cache_Block(), SNL_Is_Transformable(), SNL_Regtile_Loop(), SNL_SPL_Loop_Is_Inner_Tile(), SNL_SPL_Propagate_Tiled_Lower_Bound(), Step_Size(), Unroll_Loop_By_Trip_Count(), vintr_fis_separate_loop_and_scalar_expand(), and WBTR_Loop_Tiling().
Definition at line 2027 of file lnoutils.cxx.
References INT, OPR_LDID, Symbol_Count(), WN_kid(), WN_kid_count(), and WN_operator().
Referenced by SNL_Bound_Lin_Symb_Worth_Optimizing(), SNL_Bound_Loop_Coeff_Worth_Optimizing(), SNL_Bound_Non_Lin_Symb_Worth_Optimizing(), Solve_For(), and Symbol_Count().
| static BOOL Symbol_In_Expression | ( | WN * | wn_exp, | |
| SYMBOL | sym, | |||
| DU_MANAGER * | du | |||
| ) | [static] |
Definition at line 4286 of file lnoutils.cxx.
References FALSE, i, INT, NULL, OPR_LDID, TRUE, Unique_Stid_Definition(), WN_kid(), WN_kid0(), WN_kid_count(), and WN_operator().
Referenced by Normal_Outer_Tile().
Definition at line 1162 of file lnoutils.cxx.
References FmtAssert, MTYPE_I4, MTYPE_I8, MTYPE_U4, and MTYPE_U8.
Referenced by _bfd_coff_final_link(), _bfd_elf_mips_get_relocated_section_contents(), _bfd_generic_get_section_contents(), _bfd_generic_get_section_contents_in_window(), _bfd_mips_elf_modify_segment_map(), _bfd_xcoff_bfd_final_link(), _bfd_xcoff_slurp_armap(), _wf_setup(), CODEMAP::Add_idef(), alpha_ecoff_get_relocated_section_contents(), array_type_nelts_total(), bfd_coff_reloc16_get_relocated_section_contents(), bfd_ecoff_debug_accumulate(), bfd_generic_get_relocated_section_contents(), bfd_get_section_contents(), bfd_malloc_and_get_section(), bfd_set_section_contents(), bfin_valid_add(), Cache_Model(), cache_presence(), compare_states_for_equiv(), Convert_Alloca_To_Intrinsic(), Convert_Intrinsic_To_Alloca_Dealloca(), cwh_addr_adjust_array(), cwh_addr_mstore(), cwh_addr_temp_section(), cwh_dope_initialize(), cwh_dst_dope_bounds(), cwh_expr_compare_char(), cwh_intrin_ieee_intrin_call_helper(), cwh_intrin_ieee_intrin_helper(), cwh_intrin_sync_intrin(), cwh_stmt_character_icall(), cwh_types_dim_struct_TY(), cwh_types_dim_TY(), cwh_types_mk_common_TY(), cwh_types_mk_equiv_TY(), cwh_types_shared_dope(), Dump_Rta_Scns(), elf64_alpha_relax_got_load(), elf64_alpha_relax_tls_get_addr(), elf64_alpha_relax_with_lituse(), elf_link_add_object_symbols(), examine_objects(), Expand_Statement(), fei_as_ref(), fei_concat(), fei_free(), fei_malloc(), fei_mfree(), fei_substr(), ffebld_size_max(), ffecom_arg_ptr_to_expr(), ffecom_char_enhance_arg_(), ffecom_concat_list_gather_(), ffecom_gen_sfuncdef_(), ffecom_prepare_expr_(), ffeexpr_collapse_convert(), ffeintrin_check_(), ffeintrin_fulfill_generic(), ffeintrin_fulfill_specific(), ffetarget_real1(), ffetarget_real2(), function_prologue(), Gather_Scatter_Scalar_Expand(), ip2k_gen_sCOND(), ip2k_gen_signed_comp_branch(), ip2k_gen_unsigned_comp_branch(), LNO_Update_Indx_Range(), LWN_Integer_Cast(), MTYPE_size(), NAME(), PF_UGS::PF_UGS(), ppc64_elf_edit_toc(), ppc_bfd_coff_final_link(), push_fields_onto_fieldstack(), read_indirect_string(), rs6000_emit_prologue(), save_restore_insns(), Scalar_Expand(), SE_Indxs_and_Bounds(), Section_Variable_TY(), MEM_RANGE::Set_access_range(), VN_EXPR_MAP::set_map(), PF_LG::Split_LG(), state_is_differed(), unwind_frame(), warn_about_normalization(), write_replacement(), and xcoff64_slurp_armap().
Definition at line 4623 of file lnoutils.cxx.
References Array_Dependence_Graph, AWN_Add, AWN_Div, AWN_Mpy, AWN_Sub, BOOL, Do_Wtype(), Du_Mgr, FALSE, index_type, Loop_Step(), LWN_Copy_Tree(), LWN_Make_Icon(), NULL, OPR_GT, OPR_INTCONST, OPR_LDID, OPR_LT, Promote_Type(), TYPE_ID, Upper_Bound_Standardize(), WN_const_val(), WN_end, WN_index, WN_kid0(), WN_kid1(), WN_operator(), and WN_start.
Definition at line 4042 of file lnoutils.cxx.
References FALSE, NULL, OPR_GE, OPR_GT, OPR_LE, OPR_LT, TRUE, WN_kid0(), WN_kid1(), and WN_operator().
Referenced by Extended_Upper_Bound(), Forward_Substitute_For_Access_Arrays(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), Generate_Guard_Test(), Generate_Interleaved_Bounds(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), Has_Statically_Safe_Messy_Bounds(), HMB_Add_Guard_Condition(), HMB_Maximum_Point(), HMB_Replace_Messy_Bounds_Loop(), Hoist_Bounds_One_Level(), Hoist_Iload_Ldid_Upper_Bound_One_Level(), Hoist_Upper_Bound(), Is_Loop_Upper_Bound(), Lego_Skew_Loop(), Mp_Collapse_Loop_Heads(), Processor_Update_Inner_Tile(), Processor_Update_Outer_Tile(), SNL_Finalize_Loops(), SNL_Is_Invariant(), SNL_Legal_Perm_Bounds(), SNL_Optimize_UB_With_Access_Vectors(), SNL_UB_Worth_Optimizing(), Trip_Reduce_Loop(), Unify_Loop(), and Upper_Bound_In_Affinity_Range().
Definition at line 4064 of file lnoutils.cxx.
| static WN* Unique_Ldid_Symbol | ( | WN * | wn_exp, | |
| DU_MANAGER * | du | |||
| ) | [static] |
Definition at line 4311 of file lnoutils.cxx.
References FmtAssert, i, INT, NULL, OPR_LDID, Unique_Stid_Definition(), Wn_Is_Inside(), WN_kid(), WN_kid0(), WN_kid_count(), and WN_operator().
Referenced by Normal_Outer_Tile().
| static WN* Unique_Stid_Definition | ( | WN * | wn_ldid, | |
| DU_MANAGER * | du | |||
| ) | [static] |
Definition at line 4256 of file lnoutils.cxx.
References SLIST_ITER::First(), FmtAssert, DEF_LIST::Incomplete(), SLIST_ITER::Is_Empty(), iter, SLIST_ITER::Next(), node, NULL, OPR_LDID, OPR_STID, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), and WN_operator().
Referenced by Symbol_In_Expression(), and Unique_Ldid_Symbol().
| void Unrolled_DU_Update | ( | WN ** | bodies, | |
| UINT | u, | |||
| INT | loopno, | |||
| BOOL | update_pointers, | |||
| BOOL | cross_index | |||
| ) |
Definition at line 1881 of file lnoutils.cxx.
References BOOL, CXX_DELETE, CXX_NEW, Do_Loop_Depth(), FALSE, LNO_local_pool, load_stack, LWN_Get_Parent, MEM_POOL_Pop, MEM_POOL_Push, NULL, OPC_DO_LOOP, tmp, TRUE, Unrolled_DU_Update_E(), Unrolled_DU_Update_V(), WN_index, and WN_opcode().
Referenced by canonicalize_if_condition(), Convert_Do_Loops_Conditionals(), Create_Shackle_If_Per_Stmt(), Create_Simple_Shackle_Loops(), SHACKLE_INFO::Expr_Lower(), SHACKLE_INFO::Expr_Upper(), Fission_DU_Update(), Handle_Sink_General_Case(), Handle_Sink_Promotion_Case(), HMB_Hoist_Messy_Bounds(), Maybe_Handle_Sink_Promotion_Case(), Mp_Version_Loop(), Mp_Version_Parallel_Region(), Post_loop_peeling(), Pre_loop_peeling(), return_upper_boundplus1(), SNL_GEN_2D_Regtile(), SNL_GEN_Protect_Nest_With_Conditionals(), SNL_Peel_Iteration(), SNL_Regtile_Loop(), SNL_SPL_Split_Tile_Sets(), PF_LOOPNODE::Split_Loops(), Unroll_Loop_By_Trip_Count(), Version_Loop(), Version_Region(), and Wind_Down().
| static void Unrolled_DU_Update_E | ( | UINT | u, | |
| INT | loopno, | |||
| HASH_TABLE< WN *, WN ** > * | hash_table, | |||
| STACK< WN * > * | load_stack, | |||
| STACK< WN * > * | store_stack, | |||
| BOOL | update_pointers, | |||
| SYMBOL * | index_loopno | |||
| ) | [static] |
Definition at line 1712 of file lnoutils.cxx.
References DU_MANAGER::Add_Def_Use(), BOOL, STACK< T >::Bottom_nth(), DU_MANAGER::Create_Def_List(), DU_MANAGER::Create_Use_List(), CXX_NEW, Do_Loop_Depth(), DU_MANAGER::Du_Get_Use(), Du_Mgr, STACK< T >::Elements(), FALSE, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), SLIST_ITER::First(), USE_LIST_ITER::First(), Get_Do_Loop_Info(), i, DEF_LIST::Incomplete(), USE_LIST::Incomplete(), INT, SLIST_ITER::Is_Empty(), DO_LOOP_INFO::Is_Inner, Is_True, iter, LNO_local_pool, DEF_LIST::Loop_stmt(), SLIST_ITER::Next(), USE_LIST_ITER::Next(), node, NULL, OPC_DO_LOOP, OPR_LDID, s, USE_LIST::Set_Incomplete(), DEF_LIST::Set_Incomplete(), DEF_LIST::Set_loop_stmt(), TRUE, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), Wn_Is_Inside(), WN_opcode(), and WN_operator().
Referenced by Unrolled_DU_Update().
| static void Unrolled_DU_Update_V | ( | WN ** | bodies, | |
| UINT | u, | |||
| HASH_TABLE< WN *, WN ** > * | hash_table, | |||
| STACK< WN * > * | load_stack, | |||
| STACK< WN * > * | store_stack | |||
| ) | [static] |
Definition at line 1621 of file lnoutils.cxx.
References CXX_NEW_ARRAY, DevWarn, DU_MANAGER::Du_Get_Use(), Du_Mgr, HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), i, DEF_LIST::Incomplete(), USE_LIST::Incomplete(), INT, SLIST_ITER::Is_Empty(), iter, LNO_local_pool, Name, NULL, opc, OPCODE_is_call(), OPCODE_is_load(), OPCODE_is_store(), OPCODE_operator(), OPR_BLOCK, OPR_DO_LOOP, OPR_IO, OPR_LDID, OPR_PARM, OPR_STID, STACK< T >::Push(), DU_MANAGER::Ud_Get_Def(), WN_first(), WN_kid(), WN_kid_count(), WN_next(), and WN_opcode().
Referenced by Unrolled_DU_Update().
Definition at line 4227 of file lnoutils.cxx.
References Add_Pragma_To_MP_Regions(), FALSE, LWN_Get_Parent, Malloc_Mem_Pool, OPC_REGION, Parent_Map, REGION_get_rid(), RID_TYPE_mp, tmp, WN_opcode(), and WN_PRAGMA_LOCAL.
Referenced by Gather_Scatter_Scalar_Expand(), and Scalar_Expand().
Definition at line 2359 of file lnoutils.cxx.
References Update_Nest_Depth_Traverse().
Referenced by Finalize_Index_Variable().
Definition at line 2332 of file lnoutils.cxx.
References ACCESS_ARRAY::Dim(), i, INT, LNO_Info_Map, loop_count, LWN_Get_Parent, NULL, ACCESS_ARRAY::Num_Vec(), OPC_BLOCK, OPC_DO_LOOP, OPCODE_operator(), OPR_ARRAY, ACCESS_VECTOR::Set_Nest_Depth(), wn, WN_first(), WN_kid(), WN_kid_count(), WN_MAP_Get, WN_next(), and WN_opcode().
Referenced by Update_Nest_Depth().
Definition at line 2218 of file lnoutils.cxx.
References BOOL, Do_Loop_Is_Unsigned(), FALSE, FmtAssert, LWN_Copy_Frequency_Tree(), LWN_CreateExp2(), LWN_Get_Parent, LWN_Make_Icon(), LWN_Set_Parent, MTYPE_is_integral, MTYPE_V, Name, NULL, ok(), opc, OPC_DO_LOOP, OPCODE_desc(), OPCODE_make_op(), OPCODE_name(), OPCODE_operator(), OPCODE_rtype(), OPR_LE, OPR_LT, OPR_SUB, Solve_For(), TYPE_ID, UBvar(), WN_index, WN_kid1(), WN_opcode(), WN_operator(), and WN_set_opcode().
Referenced by ARA_LOOP_INFO::Const_Work_Estimate(), ARA_LOOP_INFO::Create_New_IF_Clause(), Eliminate_Dead_Do(), fast_fuse_check_ok(), Finalize_Index_Variable(), Find_Do_Loop_With_Min(), Fuse(), Gather_Scatter_Scalar_Expand(), Generate_Bounds(), Handle_Sink_Promotion_Case(), Handle_Sink_Symbolic_Non_Promotion_Case(), HMB_Maximum_Point(), HoistIf(), Invariant_Loops(), ARA_LOOP_INFO::Is_OK_Parallel(), ARA_LOOP_INFO::Is_Parallel(), Iterations(), Lego_Loop_Want_Skew(), Loop_Bounds_Simple(), Maybe_Handle_Sink_Promotion_Case(), Minimal_Kernel(), Mp_Tile_Single_Loop(), Perfect_Nested_Outer_Loop(), Post_loop_peeling(), ARA_LOOP_INFO::Print_Loop_Property(), Print_Prompf_Msgs(), Print_Prompl_Msgs(), Scalar_Expandable(), SE_Tile_Inner_Loop(), Simd_Pre_Analysis(), SNL_Finalize_Loops(), SNL_INV_Cache_Block(), SNL_Is_Transformable(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Peel_Iteration(), SNL_SPL_Loop_Is_Inner_Tile(), SNL_TRANS_INDEX_DATA::SNL_TRANS_INDEX_DATA(), SNL_UB_Worth_Optimizing(), SNL_Upper_Bound_Standardize(), Standardize_For_Tiling(), Statement_Sinkable_Out_Of_Loop(), Tile_Loop(), Trip_Count(), Twod_Setbound(), Upper_Bound_In_Affinity_Range(), and Vintrinsic_Fission().
| static WN* Wind_Down_Parent | ( | WN * | wn_loop, | |
| DU_MANAGER * | du | |||
| ) | [static] |
Definition at line 4339 of file lnoutils.cxx.
References Do_Loop_Depth(), SLIST_ITER::First(), DEF_LIST::Incomplete(), INT, SLIST_ITER::Is_Empty(), iter, LWN_Get_Parent, SLIST_ITER::Next(), node, NULL, OPC_DO_LOOP, OPR_LDID, DU_MANAGER::Ud_Get_Def(), DU_NODE::Wn(), WN_kid0(), WN_opcode(), WN_operator(), and WN_start.
Referenced by Normal_Outer_Tile().
| void wn_dumpexpr | ( | WN * | wn, | |
| INT | fancy, | |||
| FILE * | f, | |||
| ARRAY_DIRECTED_GRAPH16 * | dg, | |||
| WN ** | list, | |||
| WN * | parent, | |||
| BOOL | recursive | |||
| ) |
Definition at line 361 of file lnoutils.cxx.
References BOOL, CLASS_PREG, DU_MANAGER::Du_Get_Use(), Du_Mgr, FALSE, fflush(), FmtAssert, fprintf(), ARRAY_DIRECTED_GRAPH16::Get_Vertex(), i, DEF_LIST::Incomplete(), USE_LIST::Incomplete(), INT, INTRINSIC_FIRST, INTRINSIC_name, Is_True, DEF_LIST::Loop_stmt(), LWN_Get_Parent, MTYPE_F4, MTYPE_F8, Name, NULL, opc, OPC_DO_LOOP, OPCODE_has_label(), OPCODE_has_sym(), OPCODE_name(), OPCODE_operator(), OPCODE_rtype(), OPR_ADD, OPR_CONST, OPR_DIV, OPR_INTCONST, OPR_INTRINSIC_CALL, OPR_INTRINSIC_OP, OPR_IO, OPR_IO_ITEM, OPR_LDID, OPR_MPY, OPR_STID, OPR_SUB, Preg_Is_Dedicated, printed, ST_class, STC_val, strncmp(), TRUE, DU_MANAGER::Ud_Get_Def(), WN_const_val(), WN_index, WN_intrinsic(), WN_io_item(), WN_io_statement(), WN_kid(), WN_kid_count(), WN_offset(), WN_opcode(), and WN_st().
Referenced by Dump_WN(), and Print_Def_Use().
Definition at line 3289 of file lnoutils.cxx.
References FALSE, LWN_Get_Parent, and TRUE.
Referenced by BS_Loop_Within_Equivalence_Class(), Can_Fix_Array_Deps_On_Index_Variable(), Check_Doacross_Sync_Coverage(), ARA_LOOP_INFO::Default_For_Bad_Loop(), ARA_LOOP_INFO::Determine_Last_Value(), Exp_Node_Varies_In_Loop(), Find_SCF_Inside(), FS_Array_Worthwhile(), FS_Load_Assigned_on_Loop_Iteration(), FS_Worthwhile(), Gather_Vectorizable_Ops(), Has_Live_Out_Index_Variable(), Has_Scalar_Use_Inside_Loop(), HMB_Invariant_In_Loop(), Hoist_Merge(), HoistIf_Update_Use_List(), Index_Variable_Outside_Loop(), Initialize_Doacross_Last_Local_Index(), Inv_Dep_Info(), Invariant_Base(), Is_Loop_Invariant_Exp(), Is_Loop_Invariant_Use(), Is_Non_Dependent_Load(), Is_Privatizable_With_Context(), ARA_LOOP_INFO::Is_Problem_Scalar(), MIR_Replace(), Mp_Collapse_Dependences(), New_Lowest_Statement(), Patch_Loop_Statement_Expression(), SD_INFO::Push_Memory_Nodes(), Red_Dep_Info(), Remove_Unity_Trip_Loop_Dep_Update(), RV_Scalar_Node_Legal(), Scalar_Equivalence_Class(), Scalar_Expand(), Scalar_Expandable(), SE_Prune_Stack_Elements(), separate_loop_and_scalar_expand(), Simd_Vectorize_Load_And_Equilvalent(), Sinkable_Out_Of_Loop(), SNL_Find_Traverse(), SNL_Is_Distributable_Tree(), Unique_Ldid_Symbol(), Unrolled_DU_Update_E(), SX_INFO::Update_Reduction_Loop_Stmts(), ARA_LOOP_INFO::Walk_Block(), WB_DAV_draw_deps_loop(), and Which_Loop_Inside().
Definition at line 2823 of file lnoutils.cxx.
References OPCODE_is_not_executable(), WN_next(), and WN_opcode().
Referenced by Do_Automatic_Transformation(), LWN_Create_Block_From_Stmts_Below(), Rewrite_Bounds(), SNL_Distribute(), SNL_GEN_U_Ctiling(), SNL_Has_Sandwiched_Code(), SNL_INV_Distribute(), SNL_INV_Distribute_Block_Of_Loops(), SNL_Is_Distributable(), and SNL_NEST_INFO::SNL_NEST_INFO().
Definition at line 2815 of file lnoutils.cxx.
References OPCODE_is_not_executable(), WN_opcode(), and WN_prev().
Referenced by Do_Automatic_Transformation(), LWN_Create_Block_From_Stmts_Above(), Rewrite_Bounds(), SNL_Distribute(), SNL_GEN_U_Ctiling(), SNL_Has_Sandwiched_Code(), SNL_INV_Distribute(), SNL_INV_Distribute_Block_Of_Loops(), SNL_Is_Distributable(), and SNL_NEST_INFO::SNL_NEST_INFO().
Definition at line 4810 of file lnoutils.cxx.
References LWN_Get_Linenum(), LWN_Get_Parent, and NULL.
Referenced by ARA_LOOP_INFO::Bad_Array_Dependence(), Copy_Array(), Copy_Array_Section(), ARA_LOOP_INFO::Determine_Peel(), Print_Prompf_Msgs(), Print_Prompl_Msgs(), and Walk_Loop_Dependence().
1.5.6