GCC Middle and Back End API Reference
access_matrix Struct Reference

#include <tree-data-ref.h>

Collaboration diagram for access_matrix:

Data Fields

vec< loop_ploop_nest
int nb_induction_vars
vec< treeparameters
vec< lambda_vector, va_gc > * matrix

Detailed Description

Each vector of the access matrix represents a linear access
   function for a subscript.  First elements correspond to the
   leftmost indices, ie. for a[i][j] the first vector corresponds to
   the subscript in "i".  The elements of a vector are relative to
   the loop nests in which the data reference is considered,
   i.e. the vector is relative to the SCoP that provides the context
   in which this data reference occurs.

   For example, in

   | loop_1
   |    loop_2
   |      a[i+3][2*j+n-1]

   if "i" varies in loop_1 and "j" varies in loop_2, the access
   matrix with respect to the loop nest {loop_1, loop_2} is:

   | loop_1  loop_2  param_n  cst
   |   1       0        0      3
   |   0       2        1     -1

   whereas the access matrix with respect to loop_2 considers "i" as
   a parameter:

   | loop_2  param_i  param_n  cst
   |   0       1         0      3
   |   2       0         1     -1

Field Documentation

vec<loop_p> access_matrix::loop_nest
vec<lambda_vector, va_gc>* access_matrix::matrix
int access_matrix::nb_induction_vars
vec<tree> access_matrix::parameters

The documentation for this struct was generated from the following file: