osprey/be/lno/sxlimit.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define sxlimit_INCLUDED   "sxlimit.h"

Functions/Subroutines

WNSE_Tile_Inner_Loop (WN *loop, MEM_POOL *pool)
void SE_New_Tile_Infos (WN *wn_outer, SX_PLIST *plist, INT permutation[], INT nloops, MEM_POOL *pool, SNL_TILE_INFO **ti_se, BOOL full_dist)
void SE_CT_New_Tile_Infos (WN *wn_outer, SX_PLIST *plist, SNL_TILE_INFO *ti, INT permutation[], INT nloops, MEM_POOL *pool, SNL_TILE_INFO **ti_se, SNL_TILE_INFO **ti_ct, BOOL full_dist)
WNSNL_INV_Limited_SE_And_Dist (WN *wn_outer, SNL_TILE_INFO *ti_se, INT permutation[], INT nloops, SX_PLIST *plist, BOOL full_dist)


Define Documentation

#define sxlimit_INCLUDED   "sxlimit.h"

Definition at line 37 of file sxlimit.h.


Function Documentation

void SE_CT_New_Tile_Infos ( WN wn_outer,
SX_PLIST plist,
SNL_TILE_INFO ti,
INT  permutation[],
INT  nloops,
MEM_POOL pool,
SNL_TILE_INFO **  ti_se,
SNL_TILE_INFO **  ti_ct,
BOOL  full_dist 
)

void SE_New_Tile_Infos ( WN wn_outer,
SX_PLIST plist,
INT  permutation[],
INT  nloops,
MEM_POOL pool,
SNL_TILE_INFO **  ti_se,
BOOL  full_dist 
)

Definition at line 392 of file sxlimit.cxx.

References FmtAssert, NULL, and SE_CT_New_Tile_Infos().

Referenced by WBTR_SNL_INV_Limited_SE_And_Dist().

WN* SE_Tile_Inner_Loop ( WN loop,
MEM_POOL pool 
)

SXLIMIT implements limited tile size scalar expansion and distri- bution on invariant innermost SNLs.

NOTE:

In the functions below, the argument 'full_dist' is TRUE if the scalar expansion is being provided to transform a SNL into a perfect nest via distribution, FALSE if the scalar expansion is being provided only to enable the permutation.

WN* SE_Tile_Inner_Loop(WN* loop, MEM_POOL *pool)

Tile the 'loop' for scalar expansion, given that temporary memory is allocated out of 'pool'. The outer tile loop immediately encloses 'loop' when we are finished, and its value is returned.

void SE_New_Tile_Infos(WN* wn_outer, SX_PLIST* plist, INT permutation[], INT nloops, MEM_POOL* pool, SNL_TILE_INFO **ti_se, BOOL full_dist)

For the SNL 'wn_outer' to which we are applying a 'permutation' of 'nloops' loops and list of expandable scalars 'plist', compute a SNL_TILE_INFO 'ti_se' to describe the limited scalar expansion tiling which must be performed on it.

void SE_CT_New_Tile_Infos(WN* wn_outer, SX_PLIST* plist, SNL_TILE_INFO *ti, INT permutation[], INT nloops, MEM_POOL* pool, SNL_TILE_INFO **ti_se, SNL_TILE_INFO **ti_ct, BOOL full_dist)

Given the SNL 'wn_outer' of 'nloops' loops to which we are applying the 'permutation' of length 'nloops', and which originally had a cache tiling info of 'ti', compute the new cache tiling info ti_ct' and the new scalar expansion tiling info 'ti_se' which will result in fixed-size scalar expansion tiles for the SNL 'wn_outer' with scalar expansion variable list 'plist'.

WN* SNL_INV_Limited_SE_And_Dist(WN* wn_outer, SNL_TILE_INFO* ti_se, INT permutation[], INT nloops, SX_PLIST* plist, BOOL full_dist)

For the innermost SNL 'wn_outer' of 'nloops' loops, tile it for scalar expansion and distribute the loops according to the infor- mation in 'ti_se'. The 'plist' is a list of expandable scalars made by calling SX_INFO::Make_Sx_Info(). Subscripts in the scalar expanded array are made to correspond to the 'permutation' of length 'nloops'.

Definition at line 121 of file sxlimit.cxx.

References NULL, Scalar_Expansion_Tile(), SNL_INV_Compute_Tile_Size(), SNL_INV_SE_ONLY, Tile_Loop(), TRUE, Upper_Bound_Standardize(), and WN_end.

Referenced by Perform_Gather_Scatter(), separate_loop_and_scalar_expand(), and vintr_fis_separate_loop_and_scalar_expand().

WN* SNL_INV_Limited_SE_And_Dist ( WN wn_outer,
SNL_TILE_INFO ti_se,
INT  permutation[],
INT  nloops,
SX_PLIST plist,
BOOL  full_dist 
)


Generated on Wed Apr 8 14:34:38 2009 for Open64 by  doxygen 1.5.6