#include "math.h"#include "limits.h"#include "defs.h"#include "erglob.h"#include "tracing.h"#include "mempool.h"#include "cg.h"#include "cgir.h"#include "op_list.h"#include "ti_res_count.h"#include "register.h"#include "config.h"#include "tn_prop.h"#include "bb.h"#include "cgtarget.h"#include "cg_loop_scc_prop.h"#include "cg_loop_scc.h"#include "cg_loop.h"#include "cg_loop_mii.h"

Go to the source code of this file.
| #define COST_latency | ( | x | ) | ((x)->latency) |
Definition at line 393 of file cg_loop_mii.cxx.
Referenced by Add_Maximal_Costs(), Is_Max_Cost(), and Maximize_Min_II().
| #define COST_omega | ( | x | ) | ((x)->omega) |
Definition at line 394 of file cg_loop_mii.cxx.
Referenced by Add_Maximal_Costs(), Is_Max_Cost(), and Maximize_Min_II().
Definition at line 418 of file cg_loop_mii.cxx.
Referenced by Calculate_Component_Max_Costs_And_Min_Recurrence_II(), and COST_TABLE_Add_Cost().
| #define COST_TABLE_cost_vecs | ( | x | ) | ((x)->cost_vecs) |
| #define COST_TABLE_n | ( | x | ) | ((x)->n) |
| #define COST_VEC_alloc_length | ( | x | ) | ((x)->alloc_length) |
Definition at line 403 of file cg_loop_mii.cxx.
Referenced by COST_VEC_Add_Cost(), and COST_VEC_Initialize().
Definition at line 406 of file cg_loop_mii.cxx.
| #define COST_VEC_costs | ( | x | ) | ((x)->costs) |
Definition at line 404 of file cg_loop_mii.cxx.
Referenced by Add_Maximal_Costs(), COST_VEC_Add_Cost(), COST_VEC_Initialize(), Is_Max_Cost(), and Maximize_Min_II().
Definition at line 407 of file cg_loop_mii.cxx.
Referenced by Calculate_Component_Max_Costs_And_Min_Recurrence_II(), and COST_VEC_Add_Cost().
| #define COST_VEC_length | ( | x | ) | ((x)->length) |
Definition at line 402 of file cg_loop_mii.cxx.
Referenced by Add_Maximal_Costs(), Calculate_Component_Max_Costs_And_Min_Recurrence_II(), COST_VEC_Add_Cost(), COST_VEC_Initialize(), Is_Max_Cost(), and Maximize_Min_II().
Definition at line 408 of file cg_loop_mii.cxx.
Referenced by Calculate_Component_Max_Costs_And_Min_Recurrence_II(), and COST_VEC_Add_Cost().
| typedef struct cost_table COST_TABLE |
| static void Add_Maximal_Costs | ( | COST_VEC * | cvij, | |
| COST_VEC * | cvik, | |||
| COST_VEC * | cvkj, | |||
| INT32 | min_ii | |||
| ) | [static] |
Definition at line 645 of file cg_loop_mii.cxx.
References COST_latency, COST_omega, COST_VEC_Add_Cost(), COST_VEC_costs, COST_VEC_length, i, INT, and Is_Max_Cost().
Referenced by Calculate_Component_Max_Costs_And_Min_Recurrence_II().
| static void Calculate_Component_Direct_Costs_And_Min_Recurrence_II | ( | CG_LOOP_SCC * | scc, | |
| COST_TABLE * | costs | |||
| ) | [static] |
Definition at line 547 of file cg_loop_mii.cxx.
References ARC_LIST_first, ARC_LIST_rest(), ARC_omega, ARC_pred, ARC_succ, Ceiling_Divide(), CG_LOOP_min_ii, CG_LOOP_SCC_member, CG_LOOP_SCC_member_count, CG_LOOP_SCC_rec_mii, CGTARG_ARC_Sched_Latency(), COST_TABLE_Add_Cost(), i, INT, Is_True, Max(), n, NULL, OP_scc, OP_scc_index, OP_succs, and Set_CG_LOOP_SCC_rec_mii.
Referenced by Calculate_Component_Max_Costs_And_Min_Recurrence_II().
| static void Calculate_Component_Max_Costs_And_Min_Recurrence_II | ( | CG_LOOP_SCC * | scc | ) | [static] |
Definition at line 777 of file cg_loop_mii.cxx.
References Add_Maximal_Costs(), Calculate_Component_Direct_Costs_And_Min_Recurrence_II(), CG_LOOP_Add_SCC_Arc, CG_LOOP_min_ii, CG_LOOP_SCC_member, CG_LOOP_SCC_member_count, CG_LOOP_SCC_rec_mii, COST_TABLE_Alloc(), COST_TABLE_cost_vec, COST_VEC_latency, COST_VEC_length, COST_VEC_omega, cv(), i, INT, INT32, Max(), Maximize_Min_II(), MEM_local_nz_pool, MEM_POOL_Pop, MEM_POOL_Push, and n.
Referenced by CG_LOOP_Calculate_Min_Recurrence_II().
| static void Calculate_Min_Resource_II | ( | BB * | loop_body, | |
| OP_LIST * | loop_overhead, | |||
| BOOL | ignore_prefetches, | |||
| BOOL | ignore_prefetch_strides | |||
| ) | [static] |
Definition at line 264 of file cg_loop_mii.cxx.
References BB_first_op, ceil(), CG_LOOP_min_ii, CG_LOOP_Prefetch_Stride(), INT32, MEM_local_nz_pool, NULL, OP_code, OP_loh, OP_next, OP_prefetch, opc, Set_OP_loh_mii, stride, TI_RES_COUNT_Add_Op_Resources(), TI_RES_COUNT_Add_Op_Resources_Scaled(), TI_RES_COUNT_Alloc(), TI_RES_COUNT_Min_Cycles(), TI_RES_COUNT_Min_II(), TOP, Trace_Begin_Min_II_Resource(), Trace_Min_II_Resource_LOH(), and Trace_Min_II_Resource_Pre_LOH().
Referenced by CG_LOOP_Calculate_Max_Costs_And_Min_II(), and CG_LOOP_Calculate_Min_Resource_II().
| static void Calculate_Self_Recurrence_Min_II | ( | CG_LOOP_SCC * | scc, | |
| BOOL | ignore_non_def_mem_deps | |||
| ) | [static] |
Definition at line 879 of file cg_loop_mii.cxx.
References ARC_is_definite, ARC_is_mem(), ARC_LIST_first, ARC_LIST_rest(), ARC_omega, ARC_pred, ARC_succ, Ceiling_Divide(), CG_LOOP_min_ii, CG_LOOP_rec_min_ii, CG_LOOP_SCC_member, CG_LOOP_SCC_rec_mii, CGTARG_ARC_Sched_Latency(), INT, Is_True, Max(), NULL, OP_loh, OP_succs, and Set_CG_LOOP_SCC_rec_mii.
Referenced by CG_LOOP_Calculate_Min_Recurrence_II().
Definition at line 244 of file cg_loop_mii.cxx.
References Is_True.
Referenced by Calculate_Component_Direct_Costs_And_Min_Recurrence_II(), Calculate_Self_Recurrence_Min_II(), and Maximize_Min_II().
| void CG_LOOP_Calculate_Max_Costs_And_Min_II | ( | BB * | loop_body, | |
| OP_LIST * | loop_overhead, | |||
| BOOL | ignore_prefetches, | |||
| BOOL | ignore_prefetch_strides, | |||
| BOOL | ignore_non_def_mem_deps | |||
| ) |
Definition at line 997 of file cg_loop_mii.cxx.
References Calculate_Min_Resource_II(), CG_LOOP_Calculate_Min_Recurrence_II(), CG_LOOP_min_ii, CG_LOOP_res_min_ii, CGTARG_Special_Min_II(), INT32, MAX, MEM_local_nz_pool, MEM_POOL_Pop, MEM_POOL_Push, Trace_Begin_Min_II(), Trace_End_Min_II(), and trace_mii.
Definition at line 925 of file cg_loop_mii.cxx.
References Calculate_Component_Max_Costs_And_Min_Recurrence_II(), Calculate_Self_Recurrence_Min_II(), CG_LOOP_SCC_Count, CG_LOOP_SCC_member_count, CG_LOOP_SCC_Vec, Set_CG_LOOP_SCC_rec_mii, Trace_Begin_Min_II_Scc(), and Trace_End_Min_II_Scc().
Referenced by CG_LOOP_Calculate_Max_Costs_And_Min_II(), and Perform_SWP().
| void CG_LOOP_Calculate_Min_Resource_II | ( | BB * | loop_body, | |
| OP_LIST * | loop_overhead, | |||
| BOOL | ignore_prefetches, | |||
| BOOL | ignore_prefetch_strides | |||
| ) |
Definition at line 962 of file cg_loop_mii.cxx.
References Calculate_Min_Resource_II(), CG_LOOP_min_ii, CG_LOOP_res_min_ii, CGTARG_Special_Min_II(), INT32, MAX, MEM_local_nz_pool, MEM_POOL_Pop, MEM_POOL_Push, Trace_Begin_Min_II(), Trace_End_Min_II(), and trace_mii.
Referenced by Perform_SWP().
| static void COST_TABLE_Add_Cost | ( | COST_TABLE * | self, | |
| INT | i, | |||
| INT | j, | |||
| INT | omega, | |||
| INT | latency | |||
| ) | [static] |
Definition at line 496 of file cg_loop_mii.cxx.
References COST_TABLE_cost_vec, and COST_VEC_Add_Cost().
Referenced by Calculate_Component_Direct_Costs_And_Min_Recurrence_II().
| static COST_TABLE* COST_TABLE_Alloc | ( | INT | n | ) | [static] |
Definition at line 515 of file cg_loop_mii.cxx.
References COST_TABLE_cost_vecs, COST_TABLE_n, COST_VEC_Initialize(), i, INT, L_Alloc, and result.
Referenced by Calculate_Component_Max_Costs_And_Min_Recurrence_II().
Definition at line 456 of file cg_loop_mii.cxx.
References COST_VEC_alloc_length, COST_VEC_costs, COST_VEC_latency, COST_VEC_length, COST_VEC_omega, i, INT, length, MEM_local_nz_pool, and TYPE_MEM_POOL_ALLOC_N.
Referenced by Add_Maximal_Costs(), and COST_TABLE_Add_Cost().
Definition at line 432 of file cg_loop_mii.cxx.
References COST_VEC_alloc_length, COST_VEC_costs, COST_VEC_length, INT, MEM_local_nz_pool, and TYPE_MEM_POOL_ALLOC_N.
Referenced by COST_TABLE_Alloc().
| static BOOL Is_Max_Cost | ( | INT | omega, | |
| INT | latency, | |||
| COST_VEC * | cv, | |||
| INT32 | min_ii, | |||
| INT | offset | |||
| ) | [static] |
Definition at line 602 of file cg_loop_mii.cxx.
References COST_latency, COST_omega, COST_VEC_costs, COST_VEC_length, FALSE, i, INT, len, and TRUE.
Referenced by Add_Maximal_Costs().
| static void Maximize_Min_II | ( | CG_LOOP_SCC * | scc, | |
| COST_VEC * | cv1, | |||
| COST_VEC * | cv2 | |||
| ) | [static] |
Definition at line 729 of file cg_loop_mii.cxx.
References Ceiling_Divide(), CG_LOOP_min_ii, CG_LOOP_rec_min_ii, CG_LOOP_SCC_rec_mii, COST_latency, COST_omega, COST_VEC_costs, COST_VEC_length, i, INT, latency2, Max(), and Set_CG_LOOP_SCC_rec_mii.
Referenced by Calculate_Component_Max_Costs_And_Min_Recurrence_II().
Definition at line 78 of file cg_loop_mii.cxx.
References BB_Loop_Lineno(), fprintf(), Get_Error_Phase(), Get_Trace(), TFile, TP_CGLOOP, and trace_mii.
Referenced by CG_LOOP_Calculate_Max_Costs_And_Min_II(), and CG_LOOP_Calculate_Min_Resource_II().
Definition at line 117 of file cg_loop_mii.cxx.
References fflush(), fprintf(), TFile, and trace_mii.
Referenced by Calculate_Min_Resource_II().
| static void Trace_Begin_Min_II_Scc | ( | BB * | bb, | |
| CG_LOOP_SCC * | s | |||
| ) | [static] |
Definition at line 190 of file cg_loop_mii.cxx.
References CG_LOOP_SCC_id, fflush(), fprintf(), Get_Trace(), TFile, TP_CGLOOP, and trace_mii.
Referenced by CG_LOOP_Calculate_Min_Recurrence_II().
Definition at line 100 of file cg_loop_mii.cxx.
References CG_LOOP_min_ii, fprintf(), TFile, and trace_mii.
Referenced by CG_LOOP_Calculate_Max_Costs_And_Min_II(), and CG_LOOP_Calculate_Min_Resource_II().
Definition at line 223 of file cg_loop_mii.cxx.
References CG_LOOP_min_ii, CG_LOOP_SCC_member_count, CG_LOOP_SCC_Print(), fprintf(), TFile, and trace_mii.
Referenced by CG_LOOP_Calculate_Min_Recurrence_II().
Definition at line 160 of file cg_loop_mii.cxx.
References fprintf(), pmin_ii, TFile, and trace_mii.
Referenced by Calculate_Min_Resource_II().
| static void Trace_Min_II_Resource_Pre_LOH | ( | TI_RES_COUNT * | res_counts | ) | [static] |
Definition at line 137 of file cg_loop_mii.cxx.
References CG_LOOP_min_ii, fprintf(), pmin_ii, TFile, TI_RES_COUNT_Print(), and trace_mii.
Referenced by Calculate_Min_Resource_II().
Definition at line 59 of file cg_loop_mii.cxx.
Referenced by Calculate_Component_Direct_Costs_And_Min_Recurrence_II(), Calculate_Component_Max_Costs_And_Min_Recurrence_II(), Calculate_Min_Resource_II(), Calculate_Self_Recurrence_Min_II(), CG_LOOP_Calculate_Max_Costs_And_Min_II(), CG_LOOP_Calculate_Min_Resource_II(), Maximize_Min_II(), Modulo_Schedule_Succeeded(), Perform_SWP(), SWP_Show_Statistics(), Trace_End_Min_II(), Trace_End_Min_II_Scc(), and Trace_Min_II_Resource_Pre_LOH().
Definition at line 65 of file cg_loop_mii.cxx.
Referenced by Calculate_Self_Recurrence_Min_II(), CG_LOOP::Determine_SWP_Unroll_Factor(), Maximize_Min_II(), Modulo_Schedule_Succeeded(), and Perform_SWP().
Definition at line 60 of file cg_loop_mii.cxx.
Referenced by CG_LOOP_Calculate_Max_Costs_And_Min_II(), CG_LOOP_Calculate_Min_Resource_II(), CG_LOOP::Determine_SWP_Unroll_Factor(), Modulo_Schedule_Succeeded(), and Perform_SWP().
Definition at line 135 of file cg_loop_mii.cxx.
Referenced by Trace_Min_II_Resource_LOH(), and Trace_Min_II_Resource_Pre_LOH().
CG_LOOP_SCC* scc [static] |
Definition at line 68 of file cg_loop_mii.cxx.
Referenced by Analyse_Dependencies(), create_ddg_all_sccs(), create_scc(), Fission_Inner_Loop(), Make_Component(), SCC_reorder(), AEQUIV::Set_Acyclic(), Simd_Analysis(), and Vintrinsic_Fission().
Definition at line 67 of file cg_loop_mii.cxx.
Referenced by CG_LOOP_Calculate_Max_Costs_And_Min_II(), CG_LOOP_Calculate_Min_Resource_II(), Trace_Begin_Min_II(), Trace_Begin_Min_II_Resource(), Trace_Begin_Min_II_Scc(), Trace_End_Min_II(), Trace_End_Min_II_Scc(), Trace_Min_II_Resource_LOH(), and Trace_Min_II_Resource_Pre_LOH().
1.5.6