GCC Middle and Back End API Reference
|
#include <tree-data-ref.h>
Data Fields | |
vec< loop_p > | loop_nest |
int | nb_induction_vars |
vec< tree > | parameters |
vec< lambda_vector, va_gc > * | matrix |
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
vec<lambda_vector, va_gc>* access_matrix::matrix |
int access_matrix::nb_induction_vars |