osprey/be/lno/lnopt_main.h File Reference

#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"

Include dependency graph for lnopt_main.h:

Go to the source code of this file.

Data Types

module  PERMUTATION_DESCRIPTOR
module  EST_REGISTER_USAGE
module  DO_LOOP_INFO
module  REGION_INFO

Defines

#define LNO_MAX_DO_LOOP_DEPTH   32
#define TT_LNO_DEP   0x00000001
#define TT_LNO_DEP2   0x00000002
#define TT_LNO_VERBOSE   0x00000004
#define TT_LNO_PREFETCH_VERBOSE   0x00000008
#define TT_LNO_SKIP_FIZ_FUSE   0x00000010
#define TT_LNO_SKIP_PH2   0x00000020
#define TT_LNO_SKIP_INNER_FISSION   0x00000040
#define TT_LNO_SKIP_LNO   0x00000080
#define TT_LNO_SNL_DEBUG1   0x00000100
#define TT_LNO_SNL_DEBUG2   0x00000200
#define TT_LNO_SNL_INTERACT   0x00000400
#define TT_LNO_SE_MALLOC   0x00000800
#define TT_LNO_PREFETCH   0x00001000
#define TT_LNO_PREFETCH_DEBUG   0x00002000
#define TT_LNO_MODEL   0x00004000
#define TT_LNO_CACHE_MODEL_DEBUG   0x00008000
#define TT_LNO_AEQUIV   0x00010000
#define TT_LNO_SCLRZE   0x00020000
#define TT_LNO_DEAD   0x00040000
#define TT_LNO_GUARD   0x00080000
#define TT_LNO_MINVARIANT_DEBUG   0x00100000
#define TT_LNO_NORENAME   0x00200000
#define TT_LNO_SKIP_GS   0x00400000
#define TT_LNO_SKIP_NONLIN   0x01000000
#define TT_LNO_DEBUG_DELIN   0x02000000
#define TT_LNO_BIG_SCALAR_TILES   0x04000000
#define TT_GRAPH_CAPACITY   0x08000000
#define TT_LNO_DEBUG_CSE   0x10000000
#define TT_LEGO_VERBOSE   0x00000001
#define TT_LEGO_DEBUG   0x00000002
#define TT_LEGO_PRAGMAS_ONLY   0x00000004
#define TT_LEGO_DISABLE_DIVMOD   0x00000008
#define TT_LEGO_DISABLE_HOIST   0x00000010
#define TT_LEGO_DISABLE_IMPLICIT_AFFINITY   0x00000020
#define TT_LEGO_DISABLE_EXPLICIT_AFFINITY   0x00000040
#define TT_LEGO_DISABLE_INTERCHANGE   0x00000080
#define TT_LNO_RUN_ARA   0x00000100
#define TT_LNO_ARA_VERBOSE   0x00000200
#define TT_LNO_ARA_DEBUG   0x00000400
#define TT_LNO_NO_AUTO_PARALLEL   0x00000800
#define TT_LEGO_DISABLE_RR_MAPS   0x00001000
#define TT_LEGO_DISABLE_FP_DIVMOD   0x00002000
#define TT_LNO_PARALLEL_DEBUG   0x00004000
#define TT_LNO_NO_TRANSPOSE   0x00008000
#define TT_LNO_DEBUG_PROMPF   0x00010000
#define TT_LNO_DISABLE_SEFIN   0x00020000
#define TT_LNO_NO_PAD   0x00040000
#define TT_LNO_OMP_TRANSFORMS   0x00080000
#define TT_HMB_FORCE_VERSIONS   0x00100000
#define TT_SHACKLE_ONLY   0x00200000
#define TT_TILE_ONLY   0x00400000
#define TT_IPA_LNO_READ   0x00800000
#define TT_CALL_INFO   0x01000000
#define TT_SHACKLE_DEBUG   0x02000000
#define TT_CROSS_LOOP   0x04000000

Typedefs

typedef STACK< ST * > STACK_OF_ST
typedef STACK
< PERMUTATION_DESCRIPTOR
PERMUTATION_ARRAYS

Functions/Subroutines

BOOL Last_Value_Peeling ()
void Last_Value_Peeling_On ()
void Last_Value_Peeling_Off ()
DO_LOOP_INFOGet_Do_Loop_Info (const WN *wn, BOOL ok_if_none=FALSE)
void Set_Do_Loop_Info (WN *wn, DO_LOOP_INFO *dli)
BOOL Do_Loop_Is_Good (WN *wn)
BOOL Do_Loop_Has_Calls (WN *wn)
BOOL Do_Loop_Has_Unsummarized_Calls (WN *wn)
BOOL Do_Loop_Has_Unsummarized_Call_Cost (WN *wn)
BOOL Do_Loop_Has_Threadprivate (WN *wn)
BOOL Do_Loop_Has_Gotos (WN *wn)
BOOL Do_Loop_Has_Conditional (WN *wn)
BOOL Do_Loop_Has_Gotos_This_Level (WN *wn)
BOOL Do_Loop_Has_Exits (WN *wn)
BOOL Do_Loop_Is_Inner (WN *wn)
BOOL Do_Loop_Is_Ivdep (WN *wn)
BOOL Do_Loop_Is_Concurrent_Call (WN *wn)
BOOL Do_Loop_Concurrent_Directive (WN *wn)
INT Do_Loop_Depth (WN *wn)
BOOL Mark_Code (WN *wn, BOOL promote_pointers=FALSE, BOOL strict_limit=TRUE)
BOOL Build_Array_Dependence_Graph (WN *func_nd)
void Build_CG_Dependence_Graph (WN *func_nd)
void Build_CG_Dependence_Graph (ARRAY_DIRECTED_GRAPH16 *Array_Dependence_Graph)
IF_INFOGet_If_Info (WN *wn, BOOL ok_if_none=FALSE)
REGION_INFOGet_Region_Info (const WN *wn)

Variables

WN_MAP Parent_Map
WN_MAP LNO_Info_Map
WN_MAP Array_Dependence_Map
MEM_POOL LNO_default_pool
MEM_POOL LNO_local_pool
INT snl_debug
BOOL Run_Snl
BOOL Contains_MP
FILESTDOUT
BOOL LNO_Debug_Delinearization
BOOL LNO_Allow_Nonlinear
BOOL LNO_Allow_Delinearize
BOOL LNO_Tlog
FILELNO_Analysis
BOOL LNO_enabled
WNCurrent_Func_Node
class DU_MANAGERDu_Mgr
class ALIAS_MANAGERAlias_Mgr
class REDUCTION_MANAGERred_manager
class ARRAY_DIRECTED_GRAPH16Array_Dependence_Graph
PERMUTATION_ARRAYSPermutation_Arrays


Define Documentation

#define LNO_MAX_DO_LOOP_DEPTH   32

#define TT_CALL_INFO   0x01000000

#define TT_CROSS_LOOP   0x04000000

Definition at line 1144 of file lnopt_main.h.

Referenced by Cross_Loop_Cache_Analysis().

#define TT_GRAPH_CAPACITY   0x08000000

Definition at line 1103 of file lnopt_main.h.

#define TT_HMB_FORCE_VERSIONS   0x00100000

Definition at line 1138 of file lnopt_main.h.

Referenced by HMB_Hoist_Messy_Bounds().

#define TT_IPA_LNO_READ   0x00800000

#define TT_LEGO_DEBUG   0x00000002

Definition at line 1115 of file lnopt_main.h.

Referenced by Lego_File_Init().

#define TT_LEGO_DISABLE_DIVMOD   0x00000008

Definition at line 1117 of file lnopt_main.h.

Referenced by Lego_File_Init().

#define TT_LEGO_DISABLE_EXPLICIT_AFFINITY   0x00000040

Definition at line 1121 of file lnopt_main.h.

Referenced by Read_Pragma_Affinity().

#define TT_LEGO_DISABLE_FP_DIVMOD   0x00002000

Definition at line 1130 of file lnopt_main.h.

Referenced by AWN_Binary().

#define TT_LEGO_DISABLE_HOIST   0x00000010

#define TT_LEGO_DISABLE_IMPLICIT_AFFINITY   0x00000020

Definition at line 1120 of file lnopt_main.h.

Referenced by Lego_Compute_Tile_Peel().

#define TT_LEGO_DISABLE_INTERCHANGE   0x00000080

Definition at line 1122 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LEGO_DISABLE_RR_MAPS   0x00001000

Definition at line 1129 of file lnopt_main.h.

Referenced by Lego_File_Init().

#define TT_LEGO_PRAGMAS_ONLY   0x00000004

Definition at line 1116 of file lnopt_main.h.

Referenced by Lego_Lower_Pragmas().

#define TT_LEGO_VERBOSE   0x00000001

Definition at line 1114 of file lnopt_main.h.

Referenced by Lego_File_Init().

#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

#define TT_LNO_ARA_VERBOSE   0x00000200

Definition at line 1125 of file lnopt_main.h.

Referenced by ARA_Print_Loops().

#define TT_LNO_BIG_SCALAR_TILES   0x04000000

#define TT_LNO_CACHE_MODEL_DEBUG   0x00008000

Definition at line 1089 of file lnopt_main.h.

Referenced by Cache_Model().

#define TT_LNO_DEAD   0x00040000

#define TT_LNO_DEBUG_CSE   0x10000000

Definition at line 1105 of file lnopt_main.h.

Referenced by Inter_Iteration_Cses().

#define TT_LNO_DEBUG_DELIN   0x02000000

Definition at line 1101 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_DEBUG_PROMPF   0x00010000

Definition at line 1134 of file lnopt_main.h.

Referenced by Print_Prompf_Transaction_Log().

#define TT_LNO_DEP   0x00000001

#define TT_LNO_DEP2   0x00000002

#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

Definition at line 1096 of file lnopt_main.h.

Referenced by Minvariant_Removal().

#define TT_LNO_MODEL   0x00004000

Definition at line 1088 of file lnopt_main.h.

Referenced by LOOP_MODEL::Model().

#define TT_LNO_NO_AUTO_PARALLEL   0x00000800

#define TT_LNO_NO_PAD   0x00040000

Definition at line 1136 of file lnopt_main.h.

Referenced by Parallel_And_Padding_Phase().

#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

#define TT_LNO_PREFETCH   0x00001000

Definition at line 1086 of file lnopt_main.h.

Referenced by Init_Prefetch_Options().

#define TT_LNO_PREFETCH_DEBUG   0x00002000

Definition at line 1087 of file lnopt_main.h.

Referenced by Init_Prefetch_Options().

#define TT_LNO_PREFETCH_VERBOSE   0x00000008

Definition at line 1074 of file lnopt_main.h.

Referenced by Init_Prefetch_Options().

#define TT_LNO_RUN_ARA   0x00000100

Definition at line 1124 of file lnopt_main.h.

Referenced by Lnoptimizer().

#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

Definition at line 1084 of file lnopt_main.h.

Referenced by Get_Expansion_Space().

#define TT_LNO_SKIP_FIZ_FUSE   0x00000010

Definition at line 1076 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_SKIP_GS   0x00400000

Definition at line 1098 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_SKIP_INNER_FISSION   0x00000040

Definition at line 1078 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_SKIP_LNO   0x00000080

Definition at line 1079 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_SKIP_NONLIN   0x01000000

Definition at line 1100 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_SKIP_PH2   0x00000020

Definition at line 1077 of file lnopt_main.h.

Referenced by SNL_Phase().

#define TT_LNO_SNL_DEBUG1   0x00000100

Definition at line 1081 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_SNL_DEBUG2   0x00000200

Definition at line 1082 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_LNO_SNL_INTERACT   0x00000400

Definition at line 1083 of file lnopt_main.h.

#define TT_LNO_VERBOSE   0x00000004

Definition at line 1073 of file lnopt_main.h.

Referenced by Lnoptimizer().

#define TT_SHACKLE_DEBUG   0x02000000

Definition at line 1143 of file lnopt_main.h.

Referenced by shackle_if_init(), and SHACKLE_Phase().

#define TT_SHACKLE_ONLY   0x00200000

#define TT_TILE_ONLY   0x00400000

Definition at line 1140 of file lnopt_main.h.

Referenced by Phase_123(), SHACKLE_Phase(), and SNL_Phase().


Typedef Documentation

Definition at line 763 of file lnopt_main.h.

typedef STACK<ST *> STACK_OF_ST

Definition at line 753 of file lnopt_main.h.


Function Documentation

BOOL Build_Array_Dependence_Graph ( WN func_nd  ) 

void Build_CG_Dependence_Graph ( ARRAY_DIRECTED_GRAPH16 Array_Dependence_Graph  ) 

void Build_CG_Dependence_Graph ( WN func_nd  ) 

BOOL Do_Loop_Concurrent_Directive ( WN wn  )  [inline]

Definition at line 1018 of file lnopt_main.h.

References DO_LOOP_INFO::Concurrent_Directive, and Get_Do_Loop_Info().

INT Do_Loop_Depth ( WN wn  )  [inline]

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().

BOOL Do_Loop_Has_Calls ( WN wn  )  [inline]

BOOL Do_Loop_Has_Conditional ( WN wn  )  [inline]

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().

BOOL Do_Loop_Has_Exits ( WN wn  )  [inline]

BOOL Do_Loop_Has_Gotos ( WN wn  )  [inline]

BOOL Do_Loop_Has_Gotos_This_Level ( WN wn  )  [inline]

Definition at line 988 of file lnopt_main.h.

References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Gotos_This_Level.

BOOL Do_Loop_Has_Threadprivate ( WN wn  )  [inline]

Definition at line 970 of file lnopt_main.h.

References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Threadprivate.

BOOL Do_Loop_Has_Unsummarized_Call_Cost ( WN wn  )  [inline]

Definition at line 964 of file lnopt_main.h.

References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Unsummarized_Call_Cost.

BOOL Do_Loop_Has_Unsummarized_Calls ( WN wn  )  [inline]

Definition at line 958 of file lnopt_main.h.

References Get_Do_Loop_Info(), and DO_LOOP_INFO::Has_Unsummarized_Calls.

BOOL Do_Loop_Is_Concurrent_Call ( WN wn  )  [inline]

Definition at line 1012 of file lnopt_main.h.

References Get_Do_Loop_Info(), and DO_LOOP_INFO::Is_Concurrent_Call.

BOOL Do_Loop_Is_Good ( WN wn  )  [inline]

BOOL Do_Loop_Is_Inner ( WN wn  )  [inline]

BOOL Do_Loop_Is_Ivdep ( WN wn  )  [inline]

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().

IF_INFO* Get_If_Info ( WN wn,
BOOL  ok_if_none = FALSE 
) [inline]

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 (  ) 

Definition at line 1773 of file lnopt_main.cxx.

Referenced by DO_LOOP_INFO::DO_LOOP_INFO().

void Last_Value_Peeling_Off (  ) 

void Last_Value_Peeling_On (  ) 

BOOL Mark_Code ( WN wn,
BOOL  promote_pointers = FALSE,
BOOL  strict_limit = TRUE 
)

void Set_Do_Loop_Info ( WN wn,
DO_LOOP_INFO dli 
) [inline]


Variable Documentation

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 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 181 of file access_vector.cxx.

Referenced by Lnoptimizer().

Definition at line 177 of file lnopt_main.cxx.

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 161 of file lnopt_main.cxx.

Definition at line 185 of file lnopt_main.cxx.

Definition at line 90 of file prompf.cxx.

Referenced by Lnoptimizer(), and Perform_Loop_Nest_Optimization().


Generated on Wed Apr 8 14:33:37 2009 for Open64 by  doxygen 1.5.6