#include "wn.h"#include "mempool.h"#include "cxx_memory.h"#include "config_cache.h"#include "config_lno.h"#include "access_vector.h"#include "access_main.h"#include "tracing.h"#include "if_info.h"#include "dep_graph.h"

Go to the source code of this file.
| #define LNO_MAX_DO_LOOP_DEPTH 32 |
Definition at line 720 of file lnopt_main.h.
Referenced by Allocate_Lvs(), Cache_Model(), Cleanup_Lvs(), Compute_Miss_Bytes(), Fuse(), Fuse_Test(), Initialize_Lvs(), LNO_Common_Loop(), Loop_Depth_Limit(), LWN_Process_FF_Pragmas_Walk_r(), Max_Dep_Distance(), PF_LG::PF_LG(), Separate_And_Update(), SNL_GEN_Scalar_Expand(), SNL_INV_Local_Permute_Loops(), SNL_NEST_INFO::SNL_NEST_INFO(), and PF_LG::Volume().
| #define TT_CALL_INFO 0x01000000 |
Definition at line 1142 of file lnopt_main.h.
Referenced by Array_Shapes_Match_At_Formal(), Attempt_Reshape(), Bound_Difference_To_Linex(), IPA_LNO_Annotate_Array_Call(), IPA_LNO_Annotate_Scalar_Call(), IPA_LNO_Clip_Call_Def_Arcs(), IPA_LNO_Clip_Call_Use_Arcs(), IPA_LNO_Evaluate_Formal_Symbols(), IPA_LNO_Map_Calls(), IPA_LNO_Read_Formal(), Map_Projected_Region(), NSE_Annotate_Array_Call(), and Shape_Mismatch_At_Formal().
| #define TT_CROSS_LOOP 0x04000000 |
| #define TT_GRAPH_CAPACITY 0x08000000 |
Definition at line 1103 of file lnopt_main.h.
| #define TT_HMB_FORCE_VERSIONS 0x00100000 |
| #define TT_IPA_LNO_READ 0x00800000 |
Definition at line 1141 of file lnopt_main.h.
Referenced by Attempt_Reshape(), IPA_LNO_Annotate_Scalar_Call(), IPA_LNO_Read_Global(), and IPA_LNO_Read_Sections().
| #define TT_LEGO_DEBUG 0x00000002 |
| #define TT_LEGO_DISABLE_DIVMOD 0x00000008 |
| #define TT_LEGO_DISABLE_EXPLICIT_AFFINITY 0x00000040 |
| #define TT_LEGO_DISABLE_FP_DIVMOD 0x00002000 |
| #define TT_LEGO_DISABLE_HOIST 0x00000010 |
Definition at line 1119 of file lnopt_main.h.
Referenced by LEGO_INFO::Create_Local_Index(), and ARRAY_LOWER_REF::Lower_Array_Expr().
| #define TT_LEGO_DISABLE_IMPLICIT_AFFINITY 0x00000020 |
| #define TT_LEGO_DISABLE_INTERCHANGE 0x00000080 |
| #define TT_LEGO_DISABLE_RR_MAPS 0x00001000 |
| #define TT_LEGO_PRAGMAS_ONLY 0x00000004 |
| #define TT_LEGO_VERBOSE 0x00000001 |
| #define TT_LNO_AEQUIV 0x00010000 |
Definition at line 1091 of file lnopt_main.h.
Referenced by AEQUIV::Do_Color(), AEQUIV::Equivalence_Arrays(), and AEQUIV::Sort_Stack().
| #define TT_LNO_ARA_DEBUG 0x00000400 |
Definition at line 1126 of file lnopt_main.h.
Referenced by Add_Access(), Add_Bound(), ARA_Print_Loops(), ARA_REF::ARA_REF(), Loop_Invariant_Access(), Loop_Invariant_Inside(), ARA_LOOP_INFO::Merge_Info(), ARA_LOOP_INFO::Merge_then_else(), KERNEL_IMAGE::Project(), ARA_LOOP_INFO::Projection(), Region_Union(), REGION::Set_Region(), ARA_LOOP_INFO::Set_Whole_Array(), and ARA_LOOP_INFO::Walk_Loop().
| #define TT_LNO_ARA_VERBOSE 0x00000200 |
| #define TT_LNO_BIG_SCALAR_TILES 0x04000000 |
Definition at line 1102 of file lnopt_main.h.
Referenced by Perform_Gather_Scatter(), separate_loop_and_scalar_expand(), SNL_INV_Transforms(), and vintr_fis_separate_loop_and_scalar_expand().
| #define TT_LNO_CACHE_MODEL_DEBUG 0x00008000 |
| #define TT_LNO_DEAD 0x00040000 |
Definition at line 1093 of file lnopt_main.h.
Referenced by Dead_Store_Eliminate_Arrays(), Eliminate_Dead_Do(), Eliminate_Dead_If(), Eliminate_Dead_SCF(), and Process_Store().
| #define TT_LNO_DEBUG_CSE 0x10000000 |
| #define TT_LNO_DEBUG_DELIN 0x02000000 |
| #define TT_LNO_DEBUG_PROMPF 0x00010000 |
| #define TT_LNO_DEP 0x00000001 |
Definition at line 1071 of file lnopt_main.h.
Referenced by Build_Array_Dependence_Graph(), Build_CG_Dependence_Graph(), DEPV_COMPUTE::Compute(), Lego_OZero_Driver(), and Lnoptimizer().
| #define TT_LNO_DEP2 0x00000002 |
Definition at line 1072 of file lnopt_main.h.
Referenced by Build_Array_Dependence_Graph(), Build_CG_Dependence_Graph(), DEPV_COMPUTE::Compute(), SYSTEM_OF_EQUATIONS::Is_Consistent_Work(), Lego_OZero_Driver(), and Lnoptimizer().
| #define TT_LNO_DISABLE_SEFIN 0x00020000 |
Definition at line 1135 of file lnopt_main.h.
Referenced by SX_INFO::Handle_Other_Def(), inner_fission_2(), simd_2(), and vintr_fis_2().
| #define TT_LNO_GUARD 0x00080000 |
Definition at line 1094 of file lnopt_main.h.
Referenced by Is_Vectorizable_Loop(), Lego_OZero_Driver(), Lnoptimizer(), and Simd_Phase().
| #define TT_LNO_MINVARIANT_DEBUG 0x00100000 |
| #define TT_LNO_MODEL 0x00004000 |
| #define TT_LNO_NO_AUTO_PARALLEL 0x00000800 |
Definition at line 1127 of file lnopt_main.h.
Referenced by Auto_Parallelization(), ARA_LOOP_INFO::Create_IF_Clause(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Lnoptimizer(), and Parallel_And_Padding_Phase().
| #define TT_LNO_NO_PAD 0x00040000 |
| #define TT_LNO_NO_TRANSPOSE 0x00008000 |
Definition at line 1132 of file lnopt_main.h.
Referenced by Lnoptimizer(), and Parallel_And_Padding_Phase().
| #define TT_LNO_NORENAME 0x00200000 |
Definition at line 1097 of file lnopt_main.h.
Referenced by Lnoptimizer(), Phase_123(), scalar_rename(), and Scalar_Variable_Renaming().
| #define TT_LNO_OMP_TRANSFORMS 0x00080000 |
Definition at line 1137 of file lnopt_main.h.
| #define TT_LNO_PARALLEL_DEBUG 0x00004000 |
Definition at line 1131 of file lnopt_main.h.
Referenced by Auto_Parallelization(), PAR_STAT::Cycle_Count(), ARA_LOOP_INFO::Determine_Peel(), Doacross_Cost(), ARA_LOOP_INFO::Generate_Copyout_Loop(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Get_Doacross_Tile_Size(), Is_Legal_Permutation(), Mark_Auto_Parallelizable_Loops(), Mark_Parallelizable_Loop(), Parallel_Cost(), SNL_Auto_Parallelization(), SNL_Inner_Cache_Cost(), and SNL_Parallelization_Costs().
| #define TT_LNO_PREFETCH 0x00001000 |
| #define TT_LNO_PREFETCH_DEBUG 0x00002000 |
| #define TT_LNO_PREFETCH_VERBOSE 0x00000008 |
| #define TT_LNO_RUN_ARA 0x00000100 |
| #define TT_LNO_SCLRZE 0x00020000 |
Definition at line 1092 of file lnopt_main.h.
Referenced by Process_Store(), and Scalarize_Arrays().
| #define TT_LNO_SE_MALLOC 0x00000800 |
| #define TT_LNO_SKIP_FIZ_FUSE 0x00000010 |
| #define TT_LNO_SKIP_GS 0x00400000 |
| #define TT_LNO_SKIP_INNER_FISSION 0x00000040 |
| #define TT_LNO_SKIP_LNO 0x00000080 |
| #define TT_LNO_SKIP_NONLIN 0x01000000 |
| #define TT_LNO_SKIP_PH2 0x00000020 |
| #define TT_LNO_SNL_DEBUG1 0x00000100 |
| #define TT_LNO_SNL_DEBUG2 0x00000200 |
| #define TT_LNO_SNL_INTERACT 0x00000400 |
Definition at line 1083 of file lnopt_main.h.
| #define TT_LNO_VERBOSE 0x00000004 |
| #define TT_SHACKLE_DEBUG 0x02000000 |
| #define TT_SHACKLE_ONLY 0x00200000 |
Definition at line 1139 of file lnopt_main.h.
Referenced by Lnoptimizer(), Per_SNL_Shackle_Phase(), Phase_123(), SHACKLE_Phase(), and SNL_Phase().
| #define TT_TILE_ONLY 0x00400000 |
Definition at line 1140 of file lnopt_main.h.
Referenced by Phase_123(), SHACKLE_Phase(), and SNL_Phase().
Definition at line 763 of file lnopt_main.h.
| typedef STACK<ST *> STACK_OF_ST |
Definition at line 753 of file lnopt_main.h.
| void Build_CG_Dependence_Graph | ( | ARRAY_DIRECTED_GRAPH16 * | Array_Dependence_Graph | ) |
Definition at line 1018 of file lnopt_main.h.
References DO_LOOP_INFO::Concurrent_Directive, and Get_Do_Loop_Info().
Definition at line 1024 of file lnopt_main.h.
References DO_LOOP_INFO::Depth, and Get_Do_Loop_Info().
Referenced by Access_Trip_Count(), Access_Vector_Condition_Provable(), Block_Loop_Depth(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl(), CACHE_REGION::CACHE_REGION(), Check_Doacross_Sync_Coverage(), Code_Expansion_Limit_Loop(), Compute_Doacross_Delay_Cycle(), Compute_Doacross_Sync_Cycle(), Compute_Sync_Distances(), Convex_Peeling_Depth(), PAR_STAT::Cycle_Count(), Discard_Possibly_Empty_Loops(), PAR_STAT::Distribute_By_Splitting(), PAR_STAT::Distribute_For_Permutation(), Doacross_Cost(), Enclosing_Loop_At_Depth(), Enter_Scalar_Expandable_Refs(), REGISTER_MODEL::Evaluate(), Find_Av_Loop_Index(), First_Invariant_Depth(), Fission(), Fission_DU_Update(), Fix_Up_Loop_Info(), FS_Array_Worthwhile(), Fully_Permutable_Permutation(), Fuse(), General_Kernel(), General_Permutation(), Generate_Array_Dependence_For_Statement_Dependence_Graph(), Generate_Guard_Test(), Generate_Pragma_Dependence_For_Statement_Dependence_Graph(), Generate_Scalar_Dependence_For_Statement_Dependence_Graph(), Get_Doacross_Tile_Size(), Get_Stmt_For_Stmt_Dep_Graph(), SX_INFO::Handle_Other_Def(), Has_Array_Dep_Carried_Inside_Loop(), Has_Code_At_Depth(), Has_Complex_Access_Array(), Highest_Condition_Point(), Highest_Guard_Point(), HMB_Add_Guard_Condition(), HMB_Compound_Guard_Test(), HMB_Has_Messy_Subscript(), HMB_Hoist_Messy_Bounds(), HMB_Hoist_Messy_Subscripts(), HMB_Replace_Messy_Bounds(), HMB_Replace_Messy_Bounds_Loop(), HMB_Simple_Guard_And_Hoist(), intrinsic_operand_kind(), Inv_Dep_Info(), Invariant_Loop_Count(), Invariant_Loops(), Invariant_Permutation(), Invariant_Red_Depth(), PAR_STAT::Invariant_Reduction(), IPA_LNO_Read_Projected_Region(), Is_Invariant(), Is_Legal_Permutation(), Is_Legal_Permutation_Class(), REGION::Is_Loop_Invariant(), Is_Perfectly_Nested(), LNO_FB_Inv_Interchange(), Loop_Depth(), Loop_Invariant_Access(), Loop_Invariant_Inside(), SD_INFO::Make_Sd_Info(), SX_INFO::Make_Sx_Info(), Mark_Parallelizable_Loop(), Minimal_Kernel(), MIR_Has_Messy_Subscript(), MIR_Hoistable_Ref(), MIR_Test_Hoist(), LOOP_MODEL::Model(), movable_if_test(), Mp_Layout_Lego_Layout(), Mp_Version_Loop(), Non_Const_Loops(), Outermost_Enclosing_Good_Loop(), Outermost_Enclosing_Loop(), PAR_STAT::PAR_STAT(), Parallel_Directive_Class(), PARALLEL_INFO::PARALLEL_INFO(), Parallel_Interchange(), Parallel_Loop(), PARALLEL_INFO::Parallel_Loop(), Parallelizable_At_Depth(), PAR_STAT::Permute_Loops(), Post_loop_peeling(), Pre_loop_peeling(), Prompf_Interchange(), Prompf_Interchanges(), Prompf_Nested_Tile(), Red_Dep_Info(), REGION::REGION(), Remove_Unity_Trip_Loop_Dep_Update(), Reuse_Exists_In_Loop(), Scalar_Expand(), Scan_Parameters(), Scl_Dep_Info(), SE_CT_New_Tile_Infos(), SE_Guard_Depth(), SE_Guard_Tests(), SE_New_Outer_Loop(), separate_loop_and_scalar_expand(), Simd_Align_Analysis(), simd_fis_separate_loop_and_scalar_expand(), Simd_Handle_Negative_Coefficient(), simd_operand_kind(), Simd_Unroll_Statement(), Single_Iteration_Cost(), SNL_Auto_Parallelization(), SNL_Bad_Scalars_Are_Distributable(), SNL_Cache_Cost(), SNL_Depv_Is_LCD(), SNL_Depv_Is_Permutable(), SNL_Dir_Cannot_Interchange(), SNL_Distribute_By_Splitting(), SNL_Distribute_For_Permutation(), SNL_Finalizable_Loops(), SNL_Finalize_Index_Variables(), SNL_Fix_Blockable_Dependendences_Traverse(), SNL_GEN_2D_Regtile(), SNL_GEN_Distribute(), SNL_GEN_Permute_Loops(), 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_Scalar_Expand_And_Distribute(), SNL_INV_Limited_SE_And_Dist(), SNL_INV_Scalar_Expand(), SNL_INV_Scalar_Expand_Tile(), SNL_INV_Transforms(), SNL_Is_Distributable(), SNL_Is_Distributable_Tree(), SNL_Is_Invariant(), SNL_Is_Scalar_Expandable(), SNL_LB_Worth_Optimizing(), SNL_Min_Parallel_Overhead_Cost(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Parallelization_Costs(), SNL_Permutation_Is_Distributable(), SNL_Permutation_Needs_Distribution(), SNL_Permute_Loops(), SNL_Regtile_Loop(), SNL_Scalar_Expand(), SNL_Scalar_Expand_For_Splitting(), SNL_Sink_Out_Sandwiched_Statements(), SNL_SPL_Split_Tile_Sets(), SNL_Transform(), SNL_UB_Worth_Optimizing(), SNL_Upper_Bound_Standardize(), Split_Array(), Split_Depth(), Split_Sx_Depth(), Splittable(), Statement_Sinkable_Out_Of_Loop(), Sx_Depth(), Unit_Stride_Reference(), Unroll_Loop_By_Trip_Count(), Unrolled_DU_Update(), Unrolled_DU_Update_E(), Update_Loop_Stmt(), Variant_Array(), Version_Loop(), Version_Region(), vintr_fis_separate_loop_and_scalar_expand(), Vintrinsic_Fission(), Walk_Projected_Region(), WBTR_Distribution(), WBTR_Loop_Permutation(), WBTR_Scalar_Expansion(), WBTR_SNL_INV_Limited_SE_And_Dist(), Wind_Down(), and Wind_Down_Parent().
Definition at line 952 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Calls.
Referenced by fast_fuse_check_ok(), Finalize_Index_Variable(), Finalize_Index_Variable_For_Remove_Unity_Trip_Loop(), Fission(), Fission_Inner_Loop(), Fission_Test(), Fiz_Fuse(), Fully_Unroll_Short_Loops(), Fuse(), Fuse_Outer_Loops(), Fuse_Test(), Gather_Scatter_Walk(), HoistIf(), HoistIf_Walk(), Inner_Fission_Phase_Walk(), Is_Aggressive_Vintr_Loop(), Is_Vectorizable_Loop(), Mark_Auto_Vectorizable_Loops(), Outer_Loop_Fusion_Walk(), Simd_Walk(), SNL_Transform(), toplogical_reordering(), Vintrinsic_Fission(), and Vintrinsic_Fission_Walk().
Definition at line 982 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Conditional.
Referenced by Fully_Unroll_Short_Loops().
Definition at line 994 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Exits.
Referenced by FIZ_FUSE_INFO::Build(), Fully_Unroll_Short_Loops(), General_Kernel(), Inv_Dep_Info(), Red_Dep_Info(), and SNL_INFO::SNL_INFO().
Definition at line 976 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Gotos.
Referenced by Add_Stmt_Dependence(), AS_Traverse(), fast_fuse_check_ok(), Fission(), Fission_Inner_Loop(), Fission_Test(), Fix_Exp_Deps(), Fiz_Fuse(), FS_Array_Worthwhile(), Fully_Unroll_Short_Loops(), Fuse(), Fuse_Outer_Loops(), Fuse_Test(), Gather_Scatter_Walk(), Good_Do_Next_Innermost1(), HoistIf(), HoistIf_Walk(), Inner_Fission_Phase_Walk(), Inter_Iteration_Cses_R(), Is_Aggressive_Vintr_Loop(), Is_Vectorizable_Loop(), Mark_Auto_Vectorizable_Loops(), Move_Adjacent(), Outer_Loop_Fusion_Walk(), Process_If(), Simd_Walk(), SNL_Finalizable_Loops(), SNL_SPL_Loop_Is_Inner_Tile(), SNL_Transform(), toplogical_reordering(), Variant_Array(), Vintrinsic_Fission(), and Vintrinsic_Fission_Walk().
Definition at line 988 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Gotos_This_Level.
Definition at line 970 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Threadprivate.
Definition at line 964 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Unsummarized_Call_Cost.
Definition at line 958 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Unsummarized_Calls.
Definition at line 1012 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Is_Concurrent_Call.
Definition at line 946 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Bad_Mem.
Referenced by Add_Barrier_Vertex(), Add_Stmt_Dependence(), AS_Traverse(), FIZ_FUSE_INFO::Build(), Check_Vertices_Traverse(), fast_fuse_check_ok(), Fission(), Fission_Inner_Loop(), Fission_Test(), Fix_Exp_Deps(), Fiz_Fuse(), Forward_Substitutable(), Fuse(), Fuse_Outer_Loops(), Fuse_Test(), Gather_Scatter_Walk(), General_Kernel(), Good_Do_Depth(), Good_Do_Next_Innermost1(), Inner_Fission_Phase_Walk(), Inter_Iteration_Cses_R(), Inv_Dep_Info(), Is_Aggressive_Vintr_Loop(), Is_Vectorizable_Loop(), Mark_Auto_Vectorizable_Loops(), Minimal_Kernel(), Move_Adjacent(), Num_Good(), Outer_Loop_Fusion_Walk(), Outermost_Enclosing_Good_Loop(), Parallelize_Doacross_Loop(), Process_If(), Red_Dep_Info(), RV_Is_Legal(), Simd_Walk(), SNL_Finalizable_Loops(), SNL_INFO::SNL_INFO(), SNL_SPL_Loop_Is_Inner_Tile(), SNL_Transform(), toplogical_reordering(), Variant_Array(), Vintrinsic_Fission(), and Vintrinsic_Fission_Walk().
Definition at line 1000 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Is_Inner.
Referenced by Fission(), Fission_Inner_Loop(), Fiz_Fuse(), FS_Worthwhile(), Gather_Scatter_Walk(), HoistIf(), HoistIf_Walk(), Inner_Fission_Phase_Walk(), Inter_Iteration_Cses_R(), Is_Aggressive_Vintr_Loop(), Is_Vectorizable_Loop(), Mark_Auto_Vectorizable_Loops(), LOOP_MODEL::Model(), Perfect_Depth(), Simd_Walk(), SNL_INFO::SNL_INFO(), and Vintrinsic_Fission_Walk().
Definition at line 1006 of file lnopt_main.h.
References Get_Do_Loop_Info(), and DO_LOOP_INFO::Is_Ivdep.
| DO_LOOP_INFO* Get_Do_Loop_Info | ( | const WN * | wn, | |
| BOOL | ok_if_none = FALSE | |||
| ) | [inline] |
Definition at line 931 of file lnopt_main.h.
References FmtAssert, Is_True, LNO_Info_Map, OPC_DO_LOOP, WN_MAP_Get, and WN_opcode().
Referenced by _xdependence_is_preserved(), Access_Trip_Count(), Access_Vector_Condition_Provable(), Add_Parent_Loop_Constraints(), Affinity_Array_Upper_Bound(), ARA_LOOP_INFO::Always_Enough_Parallel_Work(), Always_Executes(), Any_Loop_In_SNL_Parallelizable(), ARA_Cleanup_Traverse(), ARA_Initialize_Loops(), ARA_LOOP_INFO::ARA_LOOP_INFO(), ARRAY_SNL_INFO::ARRAY_SNL_INFO(), Build_DLI_Stack(), ARRAY_REF::Build_Rec(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl(), Cache_Model(), Cannot_Concurrentize(), Check_Depth(), Check_Doacross_Sync_Coverage(), Check_Suggested_Parallel(), SNL_STREAM::Cleanup(), SNL_BOUNDS_INFO::Collect_Do_Info(), COND_BOUNDS_INFO::Collect_Do_Info(), Compute_Doacross_Delay_Cycle(), Compute_Doacross_Sync_Cycle(), COND_Do_Info(), SNL_ANAL_INFO::CONST_BOUNDS_INFO::CONST_BOUNDS_INFO(), ARA_LOOP_INFO::Const_Work_Estimate(), Constant_Propogate(), TRANSPOSE_DIRECTED_GRAPH16::Contains_Parallelizable(), Convex_Peeling_Depth(), Coupled_Loops_Traverse(), Create_Initialize_Loop(), ARRAY_LOWER_REF::Create_Local_Block_Dim(), ARA_LOOP_INFO::Create_New_IF_Clause(), Current_Numprocs(), Decrement_Loop_Depths(), ARA_LOOP_INFO::Default_For_Bad_Loop(), determine_if_sinkable_in_do(), ARA_LOOP_INFO::Determine_Peel(), Dismantle_Do(), Dismantle_Do_Walk(), Do_Automatic_Transformation(), Do_Loop_Concurrent_Directive(), Do_Loop_Depth(), Do_Loop_Explicit_Affinity(), Do_Loop_Has_Calls(), Do_Loop_Has_Conditional(), Do_Loop_Has_Exits(), Do_Loop_Has_Gotos(), Do_Loop_Has_Gotos_This_Level(), Do_Loop_Has_Threadprivate(), Do_Loop_Has_Unsummarized_Call_Cost(), Do_Loop_Has_Unsummarized_Calls(), Do_Loop_Implicit_Affinity(), Do_Loop_Is_Concurrent_Call(), Do_Loop_Is_Good(), Do_Loop_Is_Inner(), Do_Loop_Is_Ivdep(), Do_Loop_Is_Mp(), Do_Loops(), dump_loops(), Dump_WN(), Eliminate_Dead_Do(), Est_Num_Iters_Suspect(), Exact_Iteration_Count(), Extended_Lower_Bound(), Extended_Upper_Bound(), FF_Mark_Inner_Loop_Info(), Find_Kernel_Stack_Nest_Traverse(), find_loop_var_in_simple_ub(), Find_Proc_Tile_Loop(), Fiss_Gather_Inner_Loop(), Fission(), Fission_Inner_Loop(), Fix_Blockable_Dependences(), Fiz_Fuse(), Freeze_Cur_Numthreads_Func(), Freeze_Numthreads_Ldid(), FS_Load_Assigned_on_Loop_Iteration(), Fully_Unroll_Short_Loops(), Fuse(), Fuse_Outer_Loops(), Fuse_Test(), General_Kernel(), Generate_Blkcyc_Bounds(), Generate_Block_Bounds(), Generate_Block_Bounds_Negative(), Generate_Bounds(), ARA_LOOP_INFO::Generate_Copyout_Loop(), Generate_Cyclic_Bounds(), Generate_Dynamic_Bounds(), Generate_Interleaved_Bounds(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Generate_Runtime_Cyclic_Bounds(), Generate_Simple_Bounds(), Generate_Sink_Out_Code(), Get_Doacross_Tile_Size(), Get_Frozen_Numthreads_Ldid(), Get_Lego_Affinity_Distr_Type(), ARRAY_LOWER_LOOP::Get_Lego_Info(), ARRAY_LOWER_REF::Get_Ref_Loop(), Get_Runtime_Cur_Numthreads_Func(), Guard_A_Do(), Has_Lego_Mp_Loops(), HMB_Has_Messy_Left_Bound(), HMB_Has_Messy_Right_Bound(), HMB_Hoist_Messy_Bounds(), HMB_Maximum_Point(), HMB_Replace_Messy_Bounds(), Hoist_And_Sink_For_Nested_Doacross(), Hoist_Bounds_One_Level(), Hoist_Iload_Ldid_Upper_Bound_One_Level(), Hoist_Lower_Bound(), Hoist_Out_Nested_Statements(), Hoist_Outer_Invar(), Hoist_Statement(), Hoist_Statements(), Hoist_Upper_Bound(), HoistIf_Walk(), IFMM_Sink(), Increment_Loop_Depths(), Initialize_Last_Local_Index(), Inner_Fission_Phase_Walk(), Inner_LB_Is_Outer_Index_Variable(), Inner_LB_Outer_IV_Offset(), Innermore_Parallel_Loop(), Innermore_Parallel_Or_Lego_Loop(), Innermost_Doacross_Nest_Loop(), Inside_Lego_Tiled_Loop(), Interleaved_Pragma_Chunksize(), Invariant_Loops(), IPA_LNO_Reassign_Unsummarized_Calls(), Is_Inner_SNL(), Is_Invariant(), Is_Loop_Guard(), Is_Nested_Do_Across(), Is_Nested_Doacross(), Is_Orphaned_Pdo(), Is_Privatizable_With_Context(), Is_Rectangular_Nested_Doacross(), Is_Unconditional(), Is_Vectorizable_Loop(), Iterations(), Iters(), Lego_Mp_Tile_Traverse(), Lego_Peel_Traverse(), Lego_Tile_Legal(), Lego_Tile_Loop(), Lego_Tile_Single_Loop(), Lego_Tile_Traverse(), Lego_Tiling_Depth(), Lisp_Loops_Traverse(), LNO_Insert_Pragmas(), Loop_FP_Size(), Loop_Has_Positive_Trip(), Loop_Invariant_Access(), Lower_Bound_In_Affinity_Range(), Lowered_Doacross_Loops(), LWN_Process_FF_Pragmas_Walk_r(), Machine_Cost_Calls(), Mark_Auto_Vectorizable_Loops(), Mark_Calls(), Mark_Code(), Mark_Concurrent_Call(), Mark_Critical_Section_Loops_Traverse(), Mark_Dos(), Mark_Parallelizable_Loop(), Mark_Threadprivate_Loops_Traverse(), Minimal_Kernel(), MIR_Build_Loop_List_Walk(), MIR_Go_Inside(), MIR_Iterate_Outer_Loops(), MIR_Replace(), MIR_Test_Outer_Loops(), MIR_Test_SNL(), LOOP_MODEL::Model(), Mp_Collapse_Coordinates(), Mp_Collapse_Dependences(), Mp_Collapse_Loop_Heads(), Mp_Compress_Nested_Loop(), Mp_Convert_To_Single_Loop(), Mp_Coordinate_Copy_Out_Coordinates(), Mp_Delete_Outer_Mp_Lego_Info(), Mp_Disable_Opts_On_Internal_Regions(), Mp_Extract_Bogus_Do_Across(), Mp_Extract_Bogus_Do_Acrosses(), MP_INFO::MP_INFO(), Mp_Layout_Call(), Mp_Layout_Copy_Out_Layout(), Mp_Layout_Lego_Layout(), Mp_Layout_Load_Pids(), Mp_Localize_Onto_and_Layout(), Mp_Optimize_Interleaved_Loop_Traverse(), Mp_Tile_Loop(), Mp_Tile_Nested_Loop(), Mp_Tile_Single_Loop(), Mp_Tile_Traverse(), Mp_Tiling_Depth(), Mp_Trip_Count(), Mp_Version_Loop(), Mp_Want_Freeze_Cur_Threads(), Mp_Want_Freeze_Threads(), Mp_Want_Version_Loop(), ARA_LOOP_INFO::Not_Enough_Parallel_Work(), Num_Iters(), Outer_LB_GE_Inner_UB(), Outer_Tile(), Outermore_Parallel_Construct(), Outermore_Parallel_Construct_Or_Lego_Loop(), TRANSPOSE_DIRECTED_GRAPH16::Outermore_Parallelizable(), PAR_STAT::PAR_STAT(), Parallel_Directive_Class(), Parallelizable_At_Depth(), Parallelization_Process_Deps(), Parallelize_Doacross_Loop(), Peelable(), Per_SNL_Shackle_Phase(), Perfect_Nested_Outer_Loop(), LEGO_INFO::Pid0(), LEGO_INFO::Pid1(), Post_loop_peeling(), Post_Peel_Map_Refs(), Post_Peel_RR_Map_Update(), Pragma_Set_No_Interchange(), Pre_loop_peeling(), Pre_Peel_Map_Refs(), Pre_Peel_RR_Map_Update(), Print_Prompf_Msgs(), Print_Prompf_Msgs_Traverse(), Print_Prompl_Msgs(), Print_Prompl_Msgs_Traverse(), DISTRIBUTION::Process_Memory(), Processor_2D_Tile_Loop(), Processor_3D_Tile_Loop(), Processor_Update_Outer_Tile(), KERNEL_IMAGE::Project(), Prompf_Nested_Tile(), Prompf_Tile(), Read_Pragma_Affinity(), Read_Pragma_Data_Affinity(), Read_Pragma_Thread_Affinity(), Recursively_Add_Bound_Lin_Symbols(), Remove_Redundant_And_Inconsistent_If(), Remove_Unity_Trip_Loop(), Remove_Unity_Trip_Loop_Update_Is_Inner(), Renumber_Loops(), Reset_Do_Loop_Depths(), RR_Map_Refs(), RR_Map_Setup_Traverse(), RV_Depv_Is_Reversable(), RV_Reverse_Dependence(), RV_Reverse_Loop(), RV_Reverse_Node_Dependences(), RV_Traverse(), SA_Loop_Has_Dependence_Cycles(), Sandwiched_Code_Sinkable_Out(), Scalar_Expand(), Scalar_Expandable(), Scalar_Expansion_Tile(), Scl_Dep_Info(), SE_CT_New_Tile_Infos(), SE_Index_Loops(), separate_loop_and_scalar_expand(), separate_loop_by_scc(), ACCESS_ARRAY::Set_Array(), Set_Winddown_Annotations(), Shackle_Postprocess_Do_Loop_Bounds(), Simd(), Simd_Finalize_Loops(), simd_fis_separate_loop_and_scalar_expand(), Simd_Pre_Analysis(), Simd_Update_Loop_Info(), Sink_If2do(), SNL_All_Parallelizable(), SNL_Array_Analysis(), SNL_Auto_Parallelization(), SNL_Cache_Cost(), SNL_Dir_Cannot_Interchange(), SNL_Distribute(), SNL_Finalizable_Loops(), SNL_Finalize_Loops(), SNL_Find_Traverse(), SNL_GEN_2D_Regtile(), SNL_GEN_U_Ctiling(), SNL_Good_Perm_Loops(), SNL_Inner_Cache_Cost(), SNL_Inner_Exit_Count(), SNL_Inner_Machine_Cost(), SNL_Innermost_Do(), SNL_INV_Cache_Block(), SNL_INV_Compact_Scalar_Expand(), SNL_INV_Local_Permute_Loops(), SNL_INV_Permute_Loops(), SNL_Is_Invariant(), SNL_Is_Scalar_Expandable(), SNL_LB_Worth_Optimizing(), SNL_Legal_Permutation(), SNL_Lift_Lego_Tile_Loops_Once(), SNL_Lift_Lego_Tile_Loops_Shifts(), SNL_Loop_Count(), SNL_Machine_Cost(), SNL_Min_Parallel_Overhead_Cost(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Optimize_Bounds(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Parallel_Serial_Order_OK(), SNL_Parallelization_Costs(), SNL_Peel_Iteration(), SNL_Permutation_Is_Distributable(), SNL_Regtile_Loop(), SNL_SPL_Build_Loop_List(), SNL_SPL_Fix_Inner_Loop_Limits(), SNL_SPL_Fix_Second_Outer_Loop_Limits(), SNL_Transform(), SNL_UB_Worth_Optimizing(), Standardize_For_Tiling(), Statement_Sinkable_Out_Of_Loop(), Stream_Analysis(), Sufficient_Iterations(), ARA_LOOP_INFO::Tc_Parallel_Cost(), Thread_Affinity_Lower(), Tile_Loop(), Transform_Code(), Traverse_Update(), Trip_One_Loop(), Trip_Reduce_Loop(), Trip_Reducible_Loop(), Unrolled_DU_Update_E(), Update_Loop_Info(), Upper_Bound_In_Affinity_Range(), UT_Generate_Imperfect_If_Code(), vintr_fis_separate_loop_and_scalar_expand(), Vintrinsic_Fission(), ARA_LOOP_INFO::Walk_Block(), ARA_LOOP_INFO::Walk_If(), ARA_LOOP_INFO::Walk_Loop(), Walk_Loop_Dependence(), WB_access(), WB_private(), WBT_DOLOOP_STACK(), Whack_Do_Loops_Traverse(), and Wind_Down().
Definition at line 1041 of file lnopt_main.h.
References FmtAssert, ii, Is_True, LNO_Info_Map, OPC_IF, WN_MAP_Get, and WN_opcode().
Referenced by _xanalyze_stmt_for_conds(), Access_Vector_Condition_Provable(), SNL_BOUNDS_INFO::Collect_If_Info(), COND_BOUNDS_INFO::Collect_If_Info(), COND_If_Info(), determine_if_sinkable_in_do(), Find_Break_Point(), Fuse(), Get_Only_Loop_Inside(), Hoist_Conditionals(), If_While_Region_Fiz_Fuse(), Perform_Gather_Scatter(), Redundant_Condition(), Remove_Unity_Trip_Loop_Update_If_Accesses(), SCC_reorder(), Set_Enclosing_If_Has_Region(), and Vintrinsic_Fission().
| REGION_INFO* Get_Region_Info | ( | const WN * | wn | ) | [inline] |
Definition at line 1061 of file lnopt_main.h.
References FmtAssert, LNO_Info_Map, NULL, OPC_REGION, WN_MAP_Get, and WN_opcode().
| BOOL Last_Value_Peeling | ( | ) |
| void Last_Value_Peeling_Off | ( | ) |
Definition at line 1768 of file lnopt_main.cxx.
References FALSE.
Referenced by ARA_LOOP_INFO::Generate_Copyout_Loop(), and ARA_LOOP_INFO::Generate_Parallel_Pragma().
| void Last_Value_Peeling_On | ( | ) |
Definition at line 1763 of file lnopt_main.cxx.
References TRUE.
Referenced by ARA_LOOP_INFO::Generate_Copyout_Loop(), and ARA_LOOP_INFO::Generate_Parallel_Pragma().
Definition at line 161 of file can.cxx.
References BOOL, CXX_NEW, Delete_Unused_Labels(), did_dismantle, Enter_Label_Goto_Hash(), FALSE, has_dos, INT, Is_True, LNO_local_pool, Mark_Code(), MEM_POOL_Pop, MEM_POOL_Push, OPC_FUNC_ENTRY, PU_has_manual_prefetch, Remark_Depth(), stack, WN_opcode(), and WN_Simplify_Tree().
| void Set_Do_Loop_Info | ( | WN * | wn, | |
| DO_LOOP_INFO * | dli | |||
| ) | [inline] |
Definition at line 940 of file lnopt_main.h.
References Is_True, LNO_Info_Map, OPC_DO_LOOP, WN_MAP_Set, and WN_opcode().
Referenced by Create_Simple_Shackle_Loops(), Is_Vectorizable_Loop(), SA_Loop_Has_Dependence_Cycles(), separate_loop_and_scalar_expand(), separate_loop_by_scc(), simd_fis_separate_loop_and_scalar_expand(), Simd_Update_Loop_Info(), SNL_Distribute(), SNL_GEN_U_Ctiling(), SNL_INV_Cache_Block(), Thread_Affinity_Lower(), and vintr_fis_separate_loop_and_scalar_expand().
Definition at line 184 of file lnopt_main.cxx.
Definition at line 186 of file lnopt_main.cxx.
Definition at line 172 of file lnopt_main.cxx.
Referenced by Build_Array_Dependence_Graph(), and Lnoptimizer().
Definition at line 189 of file lnopt_main.cxx.
Referenced by BS_Crosses_MP_Region(), Dismantle_Dos(), FS_Array_Worthwhile(), FS_Worthwhile(), ARA_LOOP_INFO::Generate_Copyout_Loop(), ARA_LOOP_INFO::Generate_Parallel_Pragma(), Mark_Code(), MP_Problem(), and scalar_rename().
Definition at line 203 of file lnopt_main.cxx.
Definition at line 183 of file lnopt_main.cxx.
Definition at line 204 of file lnopt_main.cxx.
Referenced by Lnoptimizer(), and ACCESS_ARRAY::Set_Array().
Definition at line 182 of file access_vector.cxx.
Referenced by ACCESS_VECTOR::Add(), IPA_LNO_Evaluate_Array_Formals(), Lnoptimizer(), and ACCESS_ARRAY::Set_Array().
Definition at line 180 of file lnopt_main.cxx.
Referenced by ARA_Print_Loops(), ARA_LOOP_INFO::Bad_Array_Dependence(), Do_Automatic_Transformation(), SNL_DEP_INFO::Enter(), fast_fuse_check_msg(), Fission(), fission_analysis_info(), Fission_Inner_Loop(), Fission_Test(), Fiz_Fuse(), fiz_fuse_analysis_info(), Fuse(), Fuse_Outer_Loops(), Fuse_Test(), fusion_analysis_info(), PF_LG::Gen_Pref_Node(), PF_LOOPNODE::Gen_Prefetch(), Lnoptimizer(), LOOP_MODEL::Model(), LOOP_MODEL::Model_Results_Analysis(), outer_fusion_analysis_info(), Post_loop_peeling(), post_peeling_analysis_info(), Pre_loop_peeling(), pre_peeling_analysis_info(), Prefetch_Driver(), ARA_LOOP_INFO::Print_Analysis_Info(), separate_loop_and_scalar_expand(), SNL_ANAL_INFO::SNL_ANAL_INFO(), SNL_Phase(), SNL_Transform(), LOOP_MODEL::Try_Inner(), vintr_fission_analysis_info(), Vintrinsic_Fission(), and Walk_Loop_Dependence().
Definition at line 177 of file lnopt_main.cxx.
Definition at line 191 of file lnopt_main.cxx.
Referenced by LEGO_INFO::Create_Local_Index(), Lnoptimizer(), and ARRAY_LOWER_REF::Lower_Array_Expr().
Definition at line 167 of file lnopt_main.cxx.
Module: lno_scc.cxx $Revision$ $Date$ $Author$ $Source$
Revision history:
10-NOV-94 dkchen - Original Version
Description:
This file contains definitions for fuctions in the SCC_DIRECTED_GRAPH16. It is derived from DIRECTED_GRAPH16 described in "graph_template.h". The set of vertices and edges are implemented with dynamic arrays. The index 0 to these array is reserved as NULL pointer, which is used to represent the end of the free vertex/edge list as well as the end of the in/out edge-lists for a vertex. Therefore, when we have M vertices, the _v array has M+1 elements.
Besides, we require that initial vertices and edges counts be given to the constructor.
Definition at line 178 of file lnopt_main.cxx.
Definition at line 181 of file lnopt_main.cxx.
Referenced by Do_Automatic_Transformation(), fast_fuse_check_msg(), Fission(), Fission_Test(), Fiz_Fuse(), Fuse(), Fuse_Outer_Loops(), Fuse_Test(), PF_LG::Gen_Pref_Node(), PF_LOOPNODE::Gen_Prefetch(), IPA_LNO_Annotate_Array_Call(), Lego_Skew_Loop(), Lnoptimizer(), LOOP_MODEL::Model(), NSE_Annotate_Array_Call(), Post_loop_peeling(), Pre_loop_peeling(), Processor_2D_Tile_Loop(), Processor_3D_Tile_Loop(), Remove_Unity_Trip_Loop(), Remove_Zero_Trip_Loop(), separate_loop_and_scalar_expand(), SNL_Auto_Parallelization(), SNL_Finalize_Loops(), SNL_Lift_Lego_Tile_Loops_Once(), SNL_Lift_Lego_Tile_Loops_Shifts(), SNL_Transform(), Trip_Reduce_Loop(), Unify_Loop(), and Vintrinsic_Fission().
Definition at line 161 of file lnopt_main.cxx.
Definition at line 193 of file lnopt_main.cxx.
Referenced by DEPV_COMPUTE::Compute(), Mark_Code(), and DEPV_COMPUTE::Same_Permutation().
Definition at line 185 of file lnopt_main.cxx.
Definition at line 187 of file lnopt_main.cxx.
Referenced by Do_Automatic_Transformation(), SNL_ANAL_INFO::Enter_Deps(), Est_Num_Iters_Suspect(), Lnoptimizer(), Phase_123(), SNL_ANAL_INFO::SNL_ANAL_INFO(), SNL_Expand_Reduction_Deps(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Test_Reduction_Lexneg(), and SNL_Transform().
Definition at line 90 of file prompf.cxx.
Referenced by Lnoptimizer(), and Perform_Loop_Nest_Optimization().
1.5.6