osprey/be/cg/cg_loop_mii.cxx File Reference

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

Include dependency graph for cg_loop_mii.cxx:

Go to the source code of this file.

Data Types

type  cost
type  cost_vec
type  cost_table

Defines

#define COST_latency(x)   ((x)->latency)
#define COST_omega(x)   ((x)->omega)
#define COST_VEC_length(x)   ((x)->length)
#define COST_VEC_alloc_length(x)   ((x)->alloc_length)
#define COST_VEC_costs(x)   ((x)->costs)
#define COST_VEC_cost(x, i)   (COST_VEC_costs(x)[(i)])
#define COST_VEC_latency(x, i)   COST_latency(&COST_VEC_cost(x,i))
#define COST_VEC_omega(x, i)   COST_omega(&COST_VEC_cost(x,i))
#define COST_TABLE_n(x)   ((x)->n)
#define COST_TABLE_cost_vecs(x)   ((x)->cost_vecs)
#define COST_TABLE_cost_vec(x, i, j)   (&COST_TABLE_cost_vecs(x)[((i) * COST_TABLE_n(x)) + j])

Typedefs

typedef struct cost COST
typedef struct cost_vec COST_VEC
typedef struct cost_table COST_TABLE

Functions/Subroutines

static void Trace_Begin_Min_II (BB *bb)
static void Trace_End_Min_II (void)
static void Trace_Begin_Min_II_Resource (void)
static void Trace_Min_II_Resource_Pre_LOH (TI_RES_COUNT *res_counts)
static void Trace_Min_II_Resource_LOH (INT32 loh_mii)
static void Trace_Begin_Min_II_Scc (BB *bb, CG_LOOP_SCC *s)
static void Trace_End_Min_II_Scc (void)
INT Ceiling_Divide (INT x, INT y)
static void Calculate_Min_Resource_II (BB *loop_body, OP_LIST *loop_overhead, BOOL ignore_prefetches, BOOL ignore_prefetch_strides)
static void COST_VEC_Initialize (COST_VEC *self)
static void COST_VEC_Add_Cost (COST_VEC *cost_vec, INT omega, INT latency)
static void COST_TABLE_Add_Cost (COST_TABLE *self, INT i, INT j, INT omega, INT latency)
static COST_TABLECOST_TABLE_Alloc (INT n)
static void Calculate_Component_Direct_Costs_And_Min_Recurrence_II (CG_LOOP_SCC *scc, COST_TABLE *costs)
static BOOL Is_Max_Cost (INT omega, INT latency, COST_VEC *cv, INT32 min_ii, INT offset)
static void Add_Maximal_Costs (COST_VEC *cvij, COST_VEC *cvik, COST_VEC *cvkj, INT32 min_ii)
static void Maximize_Min_II (CG_LOOP_SCC *scc, COST_VEC *cv1, COST_VEC *cv2)
static void Calculate_Component_Max_Costs_And_Min_Recurrence_II (CG_LOOP_SCC *scc)
static void Calculate_Self_Recurrence_Min_II (CG_LOOP_SCC *scc, BOOL ignore_non_def_mem_deps)
void CG_LOOP_Calculate_Min_Recurrence_II (BB *loop_body, BOOL ignore_non_def_mem_deps)
void CG_LOOP_Calculate_Min_Resource_II (BB *loop_body, OP_LIST *loop_overhead, BOOL ignore_prefetches, BOOL ignore_prefetch_strides)
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)

Variables

INT32 CG_LOOP_min_ii
INT32 CG_LOOP_res_min_ii
INT32 CG_LOOP_rec_min_ii
static INT trace_mii = -1
static CG_LOOP_SCCscc
static INT32 pmin_ii


Define Documentation

#define COST_latency (  )     ((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)->omega)

Definition at line 394 of file cg_loop_mii.cxx.

Referenced by Add_Maximal_Costs(), Is_Max_Cost(), and Maximize_Min_II().

#define COST_TABLE_cost_vec ( x,
i,
 )     (&COST_TABLE_cost_vecs(x)[((i) * COST_TABLE_n(x)) + j])

#define COST_TABLE_cost_vecs (  )     ((x)->cost_vecs)

Definition at line 416 of file cg_loop_mii.cxx.

Referenced by COST_TABLE_Alloc().

#define COST_TABLE_n (  )     ((x)->n)

Definition at line 415 of file cg_loop_mii.cxx.

Referenced by COST_TABLE_Alloc().

#define COST_VEC_alloc_length (  )     ((x)->alloc_length)

Definition at line 403 of file cg_loop_mii.cxx.

Referenced by COST_VEC_Add_Cost(), and COST_VEC_Initialize().

#define COST_VEC_cost ( x,
i   )     (COST_VEC_costs(x)[(i)])

Definition at line 406 of file cg_loop_mii.cxx.

#define COST_VEC_costs (  )     ((x)->costs)

#define COST_VEC_latency ( x,
i   )     COST_latency(&COST_VEC_cost(x,i))

#define COST_VEC_length (  )     ((x)->length)

#define COST_VEC_omega ( x,
i   )     COST_omega(&COST_VEC_cost(x,i))


Typedef Documentation

typedef struct cost COST


Function Documentation

static void Add_Maximal_Costs ( COST_VEC cvij,
COST_VEC cvik,
COST_VEC cvkj,
INT32  min_ii 
) [static]

static void Calculate_Component_Direct_Costs_And_Min_Recurrence_II ( CG_LOOP_SCC scc,
COST_TABLE costs 
) [static]

static void Calculate_Component_Max_Costs_And_Min_Recurrence_II ( CG_LOOP_SCC scc  )  [static]

static void Calculate_Min_Resource_II ( BB loop_body,
OP_LIST *  loop_overhead,
BOOL  ignore_prefetches,
BOOL  ignore_prefetch_strides 
) [static]

static void Calculate_Self_Recurrence_Min_II ( CG_LOOP_SCC scc,
BOOL  ignore_non_def_mem_deps 
) [static]

INT Ceiling_Divide ( INT  x,
INT  y 
) [inline]

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 
)

void CG_LOOP_Calculate_Min_Recurrence_II ( BB loop_body,
BOOL  ignore_non_def_mem_deps 
)

void CG_LOOP_Calculate_Min_Resource_II ( BB loop_body,
OP_LIST *  loop_overhead,
BOOL  ignore_prefetches,
BOOL  ignore_prefetch_strides 
)

static void COST_TABLE_Add_Cost ( COST_TABLE self,
INT  i,
INT  j,
INT  omega,
INT  latency 
) [static]

static COST_TABLE* COST_TABLE_Alloc ( INT  n  )  [static]

static void COST_VEC_Add_Cost ( COST_VEC cost_vec,
INT  omega,
INT  latency 
) [static]

static void COST_VEC_Initialize ( COST_VEC self  )  [static]

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]

static void Trace_Begin_Min_II ( BB bb  )  [static]

static void Trace_Begin_Min_II_Resource ( void   )  [static]

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]

static void Trace_End_Min_II ( void   )  [static]

static void Trace_End_Min_II_Scc ( void   )  [static]

static void Trace_Min_II_Resource_LOH ( INT32  loh_mii  )  [static]

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


Variable Documentation

INT32 pmin_ii [static]

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]

INT trace_mii = -1 [static]


Generated on Wed Apr 8 14:25:29 2009 for Open64 by  doxygen 1.5.6