PIPS
|
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#include "genC.h"
#include "misc.h"
#include "linear.h"
#include "ri.h"
#include "effects.h"
#include "ri-util.h"
#include "effects-util.h"
#include "matrice.h"
#include "tiling.h"
Go to the source code of this file.
Functions | |
tiling | loop_nest_to_tile (Psysteme sc, int ls, Pbase base_index, int first_parallel_level, int last_parallel_level, int perfect_nested_level) |
Code Generation for Distributed Memory Machines. More... | |
tiling loop_nest_to_tile | ( | Psysteme | sc, |
int | ls, | ||
Pbase | base_index, | ||
int | first_parallel_level, | ||
int | last_parallel_level, | ||
int | perfect_nested_level | ||
) |
Code Generation for Distributed Memory Machines.
tiling.c
Functions to decide a specific tiling for a loop nest
File: tiling.c
PUMA, ESPRIT contract 2701
Francois Irigoin, Corinne Ancourt, Lei Zhou 1991 loop_nest_to_tile():
Because the number of elements per bank ligne is usefull to optimize the tiling, parameter ls is used temporarily to build it. Because ls is the number of bytes of each bank ligne, it is divided by the assumed number of bytes needed for the
location of one element (4 for int and real)
build the diagonal matrix: ls x I
build origin tile vector as the first iteration to minimize the number of partial tiles (heuristics)
vect_chg_coeff(&porigin,var,min);
sc | c |
ls | s |
base_index | ase_index |
first_parallel_level | irst_parallel_level |
last_parallel_level | ast_parallel_level |
perfect_nested_level | erfect_nested_level |
Definition at line 58 of file tiling.c.
References ACCESS, int_to_value, make_tiling(), matrice_new, matrice_nulle(), max, min, MIN, pips_internal_error, sc_dup(), sc_minmax_of_variable(), Svecteur::succ, VALUE_CONST, VALUE_ONE, vect_chg_coeff(), vect_size(), VECTEUR_NUL, VECTEUR_NUL_P, and vecteur_var.
Referenced by loop_nest_to_wp65_code().