#include <sxlist.h>

Public Member Functions | |
| SX_INFO (MEM_POOL *p) | |
| SX_INFO (const SX_INFO &pinfo, WN *orig, WN *copy, MEM_POOL *pool) | |
| SX_INFO (const SX_INFO &pinfo, WN *orig, HASH_TABLE< WN *, WN * > *loop_map, MEM_POOL *pool) | |
| ~SX_INFO () | |
| SX_PNODE * | Find (const SYMBOL &) |
| const SX_PNODE * | Find (const SYMBOL &) const |
| void | Enter (WN *wn_def, const SYMBOL &, WN *reduction_carried_by, INT se_not_depth, INT se_depth, INT defining_def_depth, INT lcd_depth, BOOL finalize) |
| void | Remove (SX_PNODE *) |
| void | Print (FILE *) const |
| INT | First_Transformable_Depth (const SX_PNODE **=NULL) const |
| void | Make_Sx_Info (WN *wn_outer, INT nloops, BOOL ignore_illegal=FALSE) |
| void | Update_Reduction_Loop_Stmts (WN *wn_inner) |
| INT | Lcd_Depth () |
| BOOL | Must_Finalize () |
Data Fields | |
| SX_PLIST | Plist |
Private Member Functions | |
| void | Handle_Use (WN *wn_use, INT depth, HASH_TABLE< WN *, BOOL > *loops) |
| void | Handle_Index_Variable_Def (WN *wn_def, WN *wn_rep_def, INT depth) |
| BOOL | Analyze_Reduction (WN *wn_def, INT outer, STACK< WN * > *equivalence_class, DOLOOP_STACK *dostack, WN **wn_non_red_def_ptr, INT *non_red_depth_ptr, WN **wn_red_loop_stmt_ptr) |
| void | Handle_Other_Def (WN *wn_def, WN *wn_rep_def, INT outer, INT inner, INT depth, DOLOOP_STACK *dostack) |
| void | Handle_Def (WN *wn_def, WN *wn_rep_def, INT outer, INT inner, INT depth, DOLOOP_STACK *dostack) |
| void | Walk (WN *wn, INT outer, INT inner, INT depth, HASH_TABLE< WN *, BOOL > *loops, DOLOOP_STACK *dostack) |
Definition at line 257 of file sxlist.h.
Definition at line 195 of file sxlist.cxx.
References Enter(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), CHAIN_ITER::First(), FmtAssert, fprintf(), ii, CHAIN_ITER::Is_Empty(), LNO_Verbose, LWN_Get_Parent, Make_Loop_Mapping(), n, Name, CHAIN_ITER::Next(), NULL, OPC_DO_LOOP, Plist, wn, WN_index, and WN_opcode().
| SX_INFO::SX_INFO | ( | const SX_INFO & | pinfo, | |
| WN * | orig, | |||
| HASH_TABLE< WN *, WN * > * | loop_map, | |||
| MEM_POOL * | pool | |||
| ) |
Definition at line 223 of file sxlist.cxx.
References Enter(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Find(), CHAIN_ITER::First(), FmtAssert, fprintf(), ii, CHAIN_ITER::Is_Empty(), LNO_Verbose, LWN_Get_Parent, n, Name, CHAIN_ITER::Next(), NULL, OPC_DO_LOOP, Plist, wn, WN_index, and WN_opcode().
Definition at line 297 of file sxlist.cxx.
References CHAIN_ITER::First(), i, CHAIN_ITER::Is_Empty(), n, CHAIN_ITER::Next(), NULL, and Plist.
Referenced by SD_INFO::Distribution_Range(), Enter(), Handle_Index_Variable_Def(), Handle_Other_Def(), Remove_Privatizable_DU_Copy_Arcs(), and Walk().
Definition at line 311 of file sxlist.cxx.
References CHAIN_ITER::First(), i, CHAIN_ITER::Is_Empty(), n, CHAIN_ITER::Next(), NULL, and Plist.
| void SX_INFO::Enter | ( | WN * | wn_def, | |
| const SYMBOL & | sym, | |||
| WN * | reduction_carried_by, | |||
| INT | se_not_depth, | |||
| INT | se_depth, | |||
| INT | defining_def_depth, | |||
| INT | lcd_depth, | |||
| BOOL | finalize | |||
| ) |
Definition at line 266 of file sxlist.cxx.
References SX_PLIST::_pool, CHAIN::Append(), CXX_NEW, Find(), Is_True, n, SYMBOL::Name(), NULL, and Plist.
Referenced by Handle_Index_Variable_Def(), Handle_Other_Def(), Handle_Use(), SNL_Regtile_Loop(), and SX_INFO().
Definition at line 287 of file sxlist.cxx.
References Plist, and CHAIN::Remove().
Referenced by Update_Reduction_Loop_Stmts().
Definition at line 250 of file sxlist.cxx.
References First_Transformable_Depth(), fprintf(), Plist, and SX_PLIST::Print().
Referenced by SNL_NEST_INFO::Print().
Definition at line 329 of file sxlist.cxx.
References CHAIN_ITER::First(), i, INT, CHAIN_ITER::Is_Empty(), n, CHAIN_ITER::Next(), NULL, and Plist.
Referenced by Make_Sx_Info(), Print(), SNL_NEST_INFO::SNL_NEST_INFO(), WBTR_Scalar_Expansion(), and WBTR_SNL_INV_Limited_SE_And_Dist().
Definition at line 784 of file sxlist.cxx.
References STACK< T >::Bottom_nth(), Build_Doloop_Stack(), CXX_DELETE, d, Do_Loop_Depth(), Find_Loops_Within(), First_Transformable_Depth(), FmtAssert, INT, LNO_local_pool, Name, SYMBOL::Name(), NULL, p, SNL_DEBUG3, SNL_Get_Inner_Snl_Loop(), SX_PNODE::Symbol(), Walk(), WN_do_body, and WN_index.
Referenced by SNL_Auto_Parallelization(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Parallelization_Costs(), WBTR_Scalar_Expansion(), and WBTR_SNL_INV_Limited_SE_And_Dist().
Definition at line 849 of file sxlist.cxx.
References STACK< T >::Bottom_nth(), Build_Doloop_Stack(), DU_MANAGER::Du_Get_Use(), Du_Mgr, STACK< T >::Elements(), Enclosing_Loop(), USE_LIST_ITER::First(), CHAIN_ITER::First(), FmtAssert, INT, CHAIN_ITER::Is_Empty(), SLIST_ITER::Is_Empty(), iter, LNO_local_pool, loop_stack, DEF_LIST::Loop_stmt(), n, CHAIN_ITER::Next(), USE_LIST_ITER::Next(), node, NULL, Plist, red_manager, RED_NONE, Remove(), DU_MANAGER::Ud_Get_Def(), REDUCTION_MANAGER::Which_Reduction(), DU_NODE::Wn(), and Wn_Is_Inside().
Referenced by Do_Automatic_Transformation(), and SNL_INV_Transforms().
| INT SX_INFO::Lcd_Depth | ( | ) |
Definition at line 819 of file sxlist.cxx.
References CHAIN_ITER::First(), i, INT, CHAIN_ITER::Is_Empty(), n, CHAIN_ITER::Next(), and Plist.
Referenced by Do_Automatic_Transformation(), and SNL_INV_Transforms().
| INT SX_INFO::Must_Finalize | ( | ) |
Definition at line 835 of file sxlist.cxx.
References FALSE, CHAIN_ITER::First(), i, CHAIN_ITER::Is_Empty(), n, CHAIN_ITER::Next(), Plist, and TRUE.
Referenced by Do_Automatic_Transformation().
Definition at line 378 of file sxlist.cxx.
References DevWarn, Du_Mgr, Enter(), FALSE, SLIST_ITER::First(), fprintf(), Index_Variable_Outside_Loop(), SLIST_ITER::Is_Empty(), iter, LNO_Verbose, Name, SLIST_ITER::Next(), node, NULL, SNL_DEBUG1, DU_MANAGER::Ud_Get_Def(), and DU_NODE::Wn().
Referenced by Walk().
Definition at line 417 of file sxlist.cxx.
References SX_PNODE::_defining_def_depth, SX_PNODE::_outer_se_not_reqd, SX_PNODE::_outer_se_reqd, SX_PNODE::_reduction_carried_by, DU_MANAGER::Du_Get_Use(), Du_Mgr, Enter(), FALSE, Find(), USE_LIST_ITER::First(), fprintf(), SLIST_ITER::Is_Empty(), iter, LNO_Verbose, Name, SYMBOL::Name(), USE_LIST_ITER::Next(), node, NULL, OPCODE_has_sym(), SNL_DEBUG2, sym, ul, DU_NODE::Wn(), and WN_opcode().
Referenced by Handle_Def().
| BOOL SX_INFO::Analyze_Reduction | ( | WN * | wn_def, | |
| INT | outer, | |||
| STACK< WN * > * | equivalence_class, | |||
| DOLOOP_STACK * | dostack, | |||
| WN ** | wn_non_red_def_ptr, | |||
| INT * | non_red_depth_ptr, | |||
| WN ** | wn_red_loop_stmt_ptr | |||
| ) | [private] |
Definition at line 497 of file sxlist.cxx.
References BOOL, STACK< T >::Bottom_nth(), Check_Loop_Statement(), DevWarn, Du_Mgr, STACK< T >::Elements(), FALSE, INT, DEF_LIST::Loop_stmt(), NULL, OPR_LDID, OPR_STID, red_manager, RED_NONE, TRUE, DU_MANAGER::Ud_Get_Def(), Which_Loop_Inside(), REDUCTION_MANAGER::Which_Reduction(), wn, and WN_operator().
Referenced by Handle_Other_Def().
| void SX_INFO::Handle_Other_Def | ( | WN * | wn_def, | |
| WN * | wn_rep_def, | |||
| INT | outer, | |||
| INT | inner, | |||
| INT | depth, | |||
| DOLOOP_STACK * | dostack | |||
| ) | [private] |
Definition at line 581 of file sxlist.cxx.
References SX_PNODE::_defining_def_depth, SX_PNODE::_outer_se_not_reqd, SX_PNODE::_outer_se_reqd, SX_PNODE::_reduction_carried_by, Analyze_Reduction(), BOOL, STACK< T >::Bottom_nth(), CXX_DELETE, Do_Loop_Depth(), Du_Mgr, STACK< T >::Elements(), Enter(), FALSE, Find(), Get_Trace(), INT, LNO_local_pool, DEF_LIST::Loop_stmt(), NULL, OPR_LDID, Scalar_Equivalence_Class(), Scalar_Expandable(), Scalar_Expansion_Not_Necessary(), SE_EASY_LCD, SE_HARD, SE_HARD_LCD, SE_NONE, TP_LNOPT2, TRUE, TT_LNO_DISABLE_SEFIN, DU_MANAGER::Ud_Get_Def(), wn, and WN_operator().
Referenced by Handle_Def().
| void SX_INFO::Handle_Def | ( | WN * | wn_def, | |
| WN * | wn_rep_def, | |||
| INT | outer, | |||
| INT | inner, | |||
| INT | depth, | |||
| DOLOOP_STACK * | dostack | |||
| ) | [private] |
Definition at line 716 of file sxlist.cxx.
References Handle_Index_Variable_Def(), Handle_Other_Def(), LWN_Get_Parent, OPC_DO_LOOP, and WN_opcode().
Referenced by Walk().
| void SX_INFO::Walk | ( | WN * | wn, | |
| INT | outer, | |||
| INT | inner, | |||
| INT | depth, | |||
| HASH_TABLE< WN *, BOOL > * | loops, | |||
| DOLOOP_STACK * | dostack | |||
| ) | [private] |
Definition at line 742 of file sxlist.cxx.
References Find(), Handle_Def(), Handle_Use(), INT, NULL, opc, OPC_BLOCK, OPC_DO_LOOP, OPCODE_operator(), OPR_LDID, OPR_STID, WN_first(), WN_kid(), WN_kid_count(), WN_next(), WN_opcode(), and SX_PNODE::Wn_Symbol().
Referenced by Make_Sx_Info().
Definition at line 259 of file sxlist.h.
Referenced by Do_Automatic_Transformation(), Doacross_Cost(), Enter(), SYMBOL_TREE::Enter_Scalar_Refs(), Find(), First_Transformable_Depth(), Lcd_Depth(), Must_Finalize(), PARALLEL_INFO::PARALLEL_INFO(), Parallel_Interchange(), Print(), Remove(), Remove_Privatizable_DU_Copy_Arcs(), SNL_Auto_Parallelization(), SNL_INV_Cache_Block(), SNL_INV_Transforms(), SNL_Is_Scalar_Expandable(), SNL_Parallelization_Costs(), SNL_Regtile_Loop(), SNL_Scalar_Expand(), SX_INFO(), Update_Reduction_Loop_Stmts(), WBTR_Scalar_Expansion(), and WBTR_SNL_INV_Limited_SE_And_Dist().
1.5.6