
Definition at line 80 of file stride_prefetch.cxx.
Definition at line 100 of file stride_prefetch.cxx.
| REGION_STRIDE_PREFETCH::~REGION_STRIDE_PREFETCH | ( | ) | [inline] |
Definition at line 107 of file stride_prefetch.cxx.
Definition at line 166 of file stride_prefetch.cxx.
References _mempool, BOOL, Compute_Prefetch_Distance(), CXX_NEW, Insert_Prefetch_List(), INT32, loop_header, NULL, region, and Stride_Prefetch_Initial().
Referenced by Stride_Region().
Definition at line 187 of file stride_prefetch.cxx.
References stride_loop_header::average_cycle_iter, stride_loop_header::average_data_size_iter, BOOL, Compute_Iteration_Cycles(), Compute_Iteration_Data_Size(), edge_done, EMPT, FALSE, Find_Loop_Count(), bb::freq, if(), LOOP, loop_count, loop_header, REGION::Next_Sibling(), NULL, pu_freq, region, REGION_First_BB, REGION::Region_Type(), return, THRESH_FREQ, stride_loop_header::trip_count, TRUE, and UINT64.
Referenced by Stride_A_Region().
Definition at line 244 of file stride_prefetch.cxx.
References BB_freq, REGION::Entries(), iter, and UINT64.
Referenced by Stride_Prefetch_Initial().
| double REGION_STRIDE_PREFETCH::Compute_Iteration_Cycles | ( | UINT64 | loop_count | ) | [protected] |
Definition at line 259 of file stride_prefetch.cxx.
References Compute_Region_Cycles(), and region.
Referenced by Stride_Prefetch_Initial().
| double REGION_STRIDE_PREFETCH::Compute_Region_Cycles | ( | REGION * | regn | ) | [protected] |
Definition at line 268 of file stride_prefetch.cxx.
References BB_call, BB_cycle, BB_freq, REGIONAL_CFG_NODE::BB_Node(), Calculate_BB_Cycle(), FALSE, REGIONAL_CFG_NODE::Is_Region(), iter, node, REGIONAL_CFG::Node_Set(), REGIONAL_CFG_NODE::Region_Node(), and REGION::Regional_Cfg().
Referenced by Compute_Iteration_Cycles(), and Compute_Iteration_Data_Size().
| float REGION_STRIDE_PREFETCH::Compute_Iteration_Data_Size | ( | UINT64 | loop_count | ) | [protected] |
Definition at line 315 of file stride_prefetch.cxx.
References Compute_Region_Cycles(), and region.
Referenced by Stride_Prefetch_Initial().
| float REGION_STRIDE_PREFETCH::Compute_Region_Data_Size | ( | REGION * | regn | ) | [protected] |
Definition at line 322 of file stride_prefetch.cxx.
References BB_call, BB_freq, BB_Ld_Count(), REGIONAL_CFG_NODE::BB_Node(), REGIONAL_CFG_NODE::Is_Region(), iter, node, REGIONAL_CFG::Node_Set(), region, REGIONAL_CFG_NODE::Region_Node(), REGION::Regional_Cfg(), and REGION::Regional_Cfg_Node().
Definition at line 354 of file stride_prefetch.cxx.
References BB_first_op, i, NULL, OP_code, OP_next, and UINT32.
Referenced by Compute_Region_Data_Size().
Definition at line 377 of file stride_prefetch.cxx.
References stride_loop_header::average_cycle_iter, stride_loop_header::average_data_size_iter, EMPT, LOAD_LATENCY, loop_header, Min(), PRE_DISTANCE, and stride_loop_header::trip_count.
Referenced by Stride_A_Region().
| INT32 REGION_STRIDE_PREFETCH::Min | ( | double | a, | |
| double | b, | |||
| double | c | |||
| ) | [protected] |
Definition at line 412 of file stride_prefetch.cxx.
References BB_first_op, REGIONAL_CFG_NODE::BB_Node(), REGIONAL_CFG_NODE::Is_Region(), loop_header, node, NULL, OP_code, OP_next, region, REGION::Regional_Cfg(), Stride_Ins(), stride_loop_header::trip_count, and UINT64.
Referenced by Stride_A_Region().
Definition at line 442 of file stride_prefetch.cxx.
References FB_TNV::_counters, FB_TNV::_exec_counter, FB_TNV::_zero_std_counter, DevWarn, float, i, NULL, OP_MAP_Get(), op_stride_tnv_map, Phased_Multi_Stride_Ins(), PHASED_MULTI_STRIDE_THRESHOLD, PMST_ZERO_FREQ, SINGLE_FIRST_FREQ, Strong_Single_Stride_Ins(), STRONG_SINGLE_STRIDE_THREHOLD, and UINT64.
Referenced by Insert_Prefetch_List().
Definition at line 563 of file stride_prefetch.cxx.
References Gen_Literal_TN(), Mk_OP(), and True_TN.
Definition at line 570 of file stride_prefetch.cxx.
References Gen_Enum_TN(), Mk_OP(), and True_TN.
Referenced by Phased_Multi_Stride_Ins(), and Strong_Single_Stride_Ins().
| void REGION_STRIDE_PREFETCH::Strong_Single_Stride_Ins | ( | BB * | bb, | |
| OP * | op, | |||
| INT32 | distance | |||
| ) | [protected] |
Definition at line 492 of file stride_prefetch.cxx.
References FB_TNV::_exec_counter, FB_TNV::_values, FB_TNV::_zero_std_counter, abs, base, BB_Insert_Op_Before(), Cache_Access_Same_Line(), pref_dis_map::dis, flags, float, Gen_Literal_TN(), Gen_Register_TN(), i, INT, MAX_DISTANCE, MIN_STRIDE, mINT64, Mk_OP(), Mk_Prefetch_OP(), pref_dis_map::op, OP_MAP_Get(), OP_MAP_Set(), OP_opnd, OP_srcpos, op_stride_tnv_map, OPC_PREFETCH, prefetch_list, STRONG_SINGL_STRIDE, True_TN, wn, WN_Create(), WN_offset(), and WN_pf_set_manual.
Referenced by Stride_Ins().
| void REGION_STRIDE_PREFETCH::Phased_Multi_Stride_Ins | ( | BB * | bb, | |
| OP * | op, | |||
| INT32 | distance | |||
| ) | [protected] |
Definition at line 581 of file stride_prefetch.cxx.
References FB_TNV::_exec_counter, FB_TNV::_zero_std_counter, base, BB_Insert_Op_Before(), flags, float, Gen_Literal_TN(), Gen_Register_TN(), mINT64, Mk_OP(), Mk_Prefetch_OP(), OP_MAP_Get(), OP_MAP_Set(), OP_opnd, OP_srcpos, op_stride_tnv_map, OPC_PREFETCH, PHASED_MULTI_STRIDE, stride, True_TN, wn, WN_Create(), WN_offset(), and WN_pf_set_manual.
Referenced by Stride_Ins().
MEM_POOL* REGION_STRIDE_PREFETCH::_mempool [private] |
REGION* REGION_STRIDE_PREFETCH::region [private] |
Definition at line 83 of file stride_prefetch.cxx.
Referenced by Compute_Iteration_Cycles(), Compute_Iteration_Data_Size(), Compute_Region_Data_Size(), Insert_Prefetch_List(), Stride_A_Region(), and Stride_Prefetch_Initial().
UINT64 REGION_STRIDE_PREFETCH::pu_freq [private] |
UINT64 REGION_STRIDE_PREFETCH::THRESH_FREQ [private] |
UINT32 REGION_STRIDE_PREFETCH::PRE_DISTANCE [private] |
UINT32 REGION_STRIDE_PREFETCH::LOAD_LATENCY [private] |
UINT64 REGION_STRIDE_PREFETCH::CACHE_SIZE [private] |
Definition at line 88 of file stride_prefetch.cxx.
float REGION_STRIDE_PREFETCH::STRONG_SINGLE_STRIDE_THREHOLD [private] |
Definition at line 91 of file stride_prefetch.cxx.
float REGION_STRIDE_PREFETCH::PMST_ZERO_FREQ [private] |
float REGION_STRIDE_PREFETCH::NTA_THRESHOLD [private] |
Definition at line 94 of file stride_prefetch.cxx.
Definition at line 95 of file stride_prefetch.cxx.
Referenced by Compute_Prefetch_Distance(), Insert_Prefetch_List(), Stride_A_Region(), and Stride_Prefetch_Initial().
INT32 REGION_STRIDE_PREFETCH::flags [private] |
Definition at line 96 of file stride_prefetch.cxx.
Referenced by Phased_Multi_Stride_Ins(), and Strong_Single_Stride_Ins().
1.5.6