4 /* An access to an outer array element or an iterator.
5 * Accesses to iterators have an access relation that maps to an unnamed space.
6 * An access may be both read and write.
8 struct gpu_stmt_access
{
9 /* Access reads elements */
11 /* Access writes elements */
13 /* All writes are definite writes. */
15 /* The number of index expressions specified in the access. */
18 /* Index of the array reference group this reference belong to.
19 * -1 if no reference groups have been computed for the array.
23 /* May access relation */
25 /* May access relation with as domain a mapping from iteration domain
26 * to a reference identifier.
28 isl_map
*tagged_access
;
29 /* The reference id of the corresponding pet_expr. */
32 struct gpu_stmt_access
*next
;
37 struct pet_stmt
*stmt
;
39 /* Number of tile dimensions. */
41 /* Number of initial parallel loops among tile dimensions. */
44 /* Linked list of accesses. */
45 struct gpu_stmt_access
*accesses
;
48 __isl_give isl_map
*project_out(__isl_take isl_space
*dim
,
49 int len
, int first
, int n
);
50 __isl_give isl_map
*projection(__isl_take isl_space
*dim
,
51 int src_len
, int dst_len
);
52 __isl_give isl_set
*extend(__isl_take isl_set
*set
, int dst_len
);
53 __isl_give isl_union_map
*align_range(__isl_take isl_union_map
*umap
);