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.
7 * If the access relation is empty, then the output dimension may
8 * not be equal to the dimension of the corresponding array.
10 struct gpu_stmt_access
{
11 /* Access reads elements */
13 /* Access writes elements */
15 /* All writes are definite writes. */
17 /* The number of index expressions specified in the access. */
20 /* May access relation */
22 /* May access relation with as domain a mapping from iteration domain
23 * to a reference identifier.
25 isl_map
*tagged_access
;
26 /* The reference id of the corresponding pet_expr. */
29 struct gpu_stmt_access
*next
;
34 struct pet_stmt
*stmt
;
36 /* Linked list of accesses. */
37 struct gpu_stmt_access
*accesses
;
40 __isl_give isl_map
*project_out(__isl_take isl_space
*dim
,
41 int len
, int first
, int n
);
42 __isl_give isl_map
*projection(__isl_take isl_space
*dim
,
43 int src_len
, int dst_len
);
44 __isl_give isl_set
*parametrization(__isl_take isl_space
*space
,
45 int len
, int first
, __isl_keep isl_id_list
*names
);
46 __isl_give isl_set
*extend(__isl_take isl_set
*set
, int dst_len
);
47 __isl_give isl_union_map
*align_range(__isl_take isl_union_map
*umap
);
48 int map_plain_is_fixed(isl_map
*map
, enum isl_dim_type type
, unsigned pos
);