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: