#include <stdint.h>#include "defs.h"#include "config_asm.h"#include "prefetch.h"#include "access_vector.h"#include "pf_ref.h"#include "pf_loop.h"#include "wn_map.h"#include "stab.h"#include "lnopt_main.h"#include "pf_cache.h"#include "lwn_util.h"#include "lnoutils.h"#include "pf_cg.h"#include "whirl2src.h"#include "dep.h"#include "tlog.h"#include "alloca.h"#include "targ_sim.h"#include "w2c_weak.h"#include "w2f_weak.h"

Go to the source code of this file.
Data Types | |
| type | PF_SORTED_REFS |
Defines | |
| #define | __STDC_LIMIT_MACROS |
| #define | CACHE_LINE_SIZE 128 |
| #define | INT_INFINITY 9999 |
| #define | absof(x) (((x)>0) ? (x) : (0-(x))) |
| #define | maxof(x, y) (((x)>(y)) ? (x) : (y)) |
| #define | minof(x, y) (((x)<(y)) ? (x) : (y)) |
| #define | minmaxof(mn, mx, item) (((item) < (min)) ? ((min) = (item)) : (((item) > (max)) ? ((max) = (item)) : 0)) |
| #define | MAX_LEN 1024 |
Functions/Subroutines | |
| INT64 | Get_Good_Num_Iters (DO_LOOP_INFO *dli) |
| void | Initialize_Lvs () |
| void | Allocate_Lvs (INT i, INT j) |
| void | Cleanup_Lvs () |
| void | Listing_Emit_WN (FILE *fp, WN *wn) |
| static void | Insert (INT64 *dist, INT num, INT64 elem) |
| PF_LOOPNODE * | Is_Outer_Tile (PF_LOOPNODE *inner_ln, PF_LOOPNODE *outer_ln, ACCESS_ARRAY *aa) |
| static PF_SORTED_REFS * | Sort_Refvecs (PF_REFVEC_DA *refvecs, mINT16 leadingref) |
| BOOL | Steady_Base (WN *wn_array) |
Variables | |
| WN_MAP | LNO_Info_Map |
| static VECTOR_SPACE< FRAC > * | global_lvs [LNO_MAX_DO_LOOP_DEPTH+1][LNO_MAX_DO_LOOP_DEPTH+1] |
| #define __STDC_LIMIT_MACROS |
Definition at line 127 of file pf_ref.cxx.
| #define absof | ( | x | ) | (((x)>0) ? (x) : (0-(x))) |
| #define CACHE_LINE_SIZE 128 |
Definition at line 134 of file pf_ref.cxx.
| #define INT_INFINITY 9999 |
| #define MAX_LEN 1024 |
Referenced by cover_insn(), PF_LG::Gen_Pref_Node(), and Targ_Emit_String().
| #define maxof | ( | x, | |||
| y | ) | (((x)>(y)) ? (x) : (y)) |
Definition at line 160 of file pf_ref.cxx.
Referenced by PF_LG::Add_Group(), PF_LG::Add_Ref(), and PF_LG::Split_LG().
| #define minmaxof | ( | mn, | |||
| mx, | |||||
| item | ) | (((item) < (min)) ? ((min) = (item)) : (((item) > (max)) ? ((max) = (item)) : 0)) |
Definition at line 162 of file pf_ref.cxx.
| #define minof | ( | x, | |||
| y | ) | (((x)<(y)) ? (x) : (y)) |
Definition at line 161 of file pf_ref.cxx.
Definition at line 283 of file pf_ref.cxx.
References CXX_NEW, FALSE, VECTOR_SPACE< T >::Insert(), INT, Is_True, LNO_MAX_DO_LOOP_DEPTH, NULL, PF_mpool, and tmp.
Referenced by PF_UGS::ComputePFVec().
| void Cleanup_Lvs | ( | ) |
Definition at line 305 of file pf_ref.cxx.
References CXX_DELETE, i, INT, LNO_MAX_DO_LOOP_DEPTH, and PF_mpool.
Referenced by Prefetch_Auto().
| INT64 Get_Good_Num_Iters | ( | DO_LOOP_INFO * | dli | ) |
Definition at line 224 of file pf_ref.cxx.
References DO_LOOP_INFO::Est_Max_Iterations_Index, DO_LOOP_INFO::Est_Num_Iterations, INT64, and DO_LOOP_INFO::Num_Iterations_Symbolic.
Referenced by Cache_Model(), PF_LG::Get_Bit_Vec(), Mark_Dos(), SNL_Inner_Cache_Cost(), PF_LOOPNODE::Split_Loops(), and PF_LG::Volume().
| void Initialize_Lvs | ( | ) |
Definition at line 246 of file pf_ref.cxx.
References CXX_NEW, FALSE, i, VECTOR_SPACE< T >::Insert(), INT, LNO_MAX_DO_LOOP_DEPTH, NULL, PF_mpool, and tmp.
Referenced by Prefetch_Auto().
Definition at line 1135 of file pf_ref.cxx.
Referenced by IPO_SYMTAB::Copy_Local_Tables(), and PF_LG::Split_LG().
| PF_LOOPNODE* Is_Outer_Tile | ( | PF_LOOPNODE * | inner_ln, | |
| PF_LOOPNODE * | outer_ln, | |||
| ACCESS_ARRAY * | aa | |||
| ) |
Definition at line 1362 of file pf_ref.cxx.
References CLASS_PREG, ACCESS_ARRAY::Dim(), Du_Mgr, PF_LOOPNODE::Get_Code(), PF_LOOPNODE::Get_Depth(), PF_LOOPNODE::Get_Parent(), INT, Is_True, Last_Dedicated_Preg_Offset, ACCESS_VECTOR::Loop_Coeff(), NULL, ACCESS_ARRAY::Num_Vec(), Outer_Tile(), Preg_Name(), ST_class, ST_name, WN_index, WN_offset(), and WN_st().
Referenced by PF_UGS::ComputePFVec(), and PF_LG::Volume().
Definition at line 343 of file pf_ref.cxx.
References buf, fprintf(), Get_Current_PU, OPR_ISTORE, pf_func_nd, PU_C_LANG, PU_CXX_LANG, PU_F77_LANG, PU_F90_LANG, PU_src_lang, W2C_Pop_PU(), W2C_Push_PU(), W2C_Translate_Istore_Lhs(), W2F_Pop_PU(), W2F_Push_PU(), W2F_Translate_Istore_Lhs(), Whirl2Src_Emit(), WN_desc(), WN_kid1(), WN_offset(), WN_operator(), and WN_ty().
Referenced by PF_LG::Gen_Pref_Node().
| static PF_SORTED_REFS* Sort_Refvecs | ( | PF_REFVEC_DA * | refvecs, | |
| mINT16 | leadingref | |||
| ) | [static] |
Definition at line 1656 of file pf_ref.cxx.
References STACK< T >::Bottom_nth(), CXX_NEW_ARRAY, PF_SORTED_REFS::dist, PF_REFVEC::Distance(), STACK< T >::Elements(), INT, Is_True, PF_mpool, PF_REFVEC::Refnum(), PF_SORTED_REFS::refnum, and PF_SORTED_REFS::refvecnum.
Referenced by PF_LG::Gen_Prefetch().
Definition at line 3947 of file pf_ref.cxx.
References DEPV_COMPUTE::Base_Test(), DEP_CONTINUE, Is_True, LWN_Get_Parent, NULL, OPR_ARRAY, and WN_operator().
Referenced by PF_LOOPNODE::Add_Ref().
VECTOR_SPACE<FRAC>* global_lvs[LNO_MAX_DO_LOOP_DEPTH+1][LNO_MAX_DO_LOOP_DEPTH+1] [static] |
Definition at line 233 of file pf_ref.cxx.
Definition at line 167 of file lnopt_main.cxx.
1.5.6