Polly 20.0.0git
isl_schedule_band.h
Go to the documentation of this file.
1#ifndef ISL_SCHEDULE_BAND_H
2#define ISL_SCHEDULE_BAND_H
3
4#include <isl/aff.h>
5#include <isl/ast_type.h>
6#include <isl/union_map.h>
7
8/* Information about a band within a schedule.
9 *
10 * n is the number of scheduling dimensions within the band.
11 * coincident is an array of length n, indicating whether a scheduling dimension
12 * satisfies the coincidence constraints in the sense that
13 * the corresponding dependence distances are zero.
14 * permutable is set if the band is permutable.
15 * mupa is the partial schedule corresponding to this band. The dimension
16 * of mupa is equal to n.
17 * loop_type contains the loop AST generation types for the members
18 * in the band. It may be NULL, if all members are
19 * of type isl_ast_loop_default.
20 * isolate_loop_type contains the loop AST generation types for the members
21 * in the band for the isolated part. It may be NULL, if all members are
22 * of type isl_ast_loop_default.
23 * ast_build_options are the remaining AST build options associated
24 * to the band.
25 * anchored is set if the node depends on its position in the schedule tree.
26 * In particular, it is set if the AST build options include
27 * an isolate option.
28 */
30 int ref;
31
32 int n;
35
37
42};
44
51
53
56
58
84 __isl_keep isl_schedule_band *band, int depth);
88
97
113 __isl_take isl_schedule_band *band, int pos, int n);
116
124
125#endif
struct isl_union_pw_multi_aff isl_union_pw_multi_aff
Definition: aff_type.h:38
struct isl_multi_union_pw_aff isl_multi_union_pw_aff
Definition: aff_type.h:46
isl_ast_loop_type
Definition: ast_type.h:91
#define __isl_take
Definition: ctx.h:22
#define __isl_give
Definition: ctx.h:19
#define __isl_null
Definition: ctx.h:28
#define __isl_keep
Definition: ctx.h:25
int isl_size
Definition: ctx.h:96
isl_bool
Definition: ctx.h:89
void GMPZAPI() add(mp_int rop, mp_int op1, mp_int op2)
static void drop(struct isl_coalesce_info *info)
Definition: isl_coalesce.c:367
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
Definition: isl_map.c:70
__isl_give isl_union_set * isl_schedule_band_get_ast_build_options(__isl_keep isl_schedule_band *band)
isl_bool isl_schedule_band_get_permutable(__isl_keep isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_mod(__isl_take isl_schedule_band *band, __isl_take isl_multi_val *mv)
__isl_give isl_schedule_band * isl_schedule_band_pullback_union_pw_multi_aff(__isl_take isl_schedule_band *band, __isl_take isl_union_pw_multi_aff *upma)
__isl_give isl_schedule_band * isl_schedule_band_copy(__isl_keep isl_schedule_band *band)
int isl_schedule_band_is_anchored(__isl_keep isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_member_set_coincident(__isl_take isl_schedule_band *band, int pos, int coincident)
__isl_give isl_schedule_band * isl_schedule_band_reset_user(__isl_take isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_shift(__isl_take isl_schedule_band *band, __isl_take isl_multi_union_pw_aff *shift)
__isl_give isl_schedule_band * isl_schedule_band_tile(__isl_take isl_schedule_band *band, __isl_take isl_multi_val *sizes)
__isl_give isl_space * isl_schedule_band_get_space(__isl_keep isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_point(__isl_take isl_schedule_band *band, __isl_keep isl_schedule_band *tile, __isl_take isl_multi_val *sizes)
isl_ctx * isl_schedule_band_get_ctx(__isl_keep isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_member_set_isolate_ast_loop_type(__isl_take isl_schedule_band *band, int pos, enum isl_ast_loop_type type)
isl_size isl_schedule_band_n_member(__isl_keep isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_replace_ast_build_option(__isl_take isl_schedule_band *band, __isl_take isl_set *drop, __isl_take isl_set *add)
__isl_give isl_schedule_band * isl_schedule_band_gist(__isl_take isl_schedule_band *band, __isl_take isl_union_set *context)
__isl_give isl_schedule_band * isl_schedule_band_align_params(__isl_take isl_schedule_band *band, __isl_take isl_space *space)
__isl_give isl_schedule_band * isl_schedule_band_scale(__isl_take isl_schedule_band *band, __isl_take isl_multi_val *mv)
__isl_give isl_schedule_band * isl_schedule_band_member_set_ast_loop_type(__isl_take isl_schedule_band *band, int pos, enum isl_ast_loop_type type)
__isl_give isl_multi_union_pw_aff * isl_schedule_band_get_partial_schedule(__isl_keep isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_drop(__isl_take isl_schedule_band *band, int pos, int n)
__isl_give isl_schedule_band * isl_schedule_band_scale_down(__isl_take isl_schedule_band *band, __isl_take isl_multi_val *mv)
__isl_give isl_set * isl_schedule_band_get_ast_isolate_option(__isl_keep isl_schedule_band *band, int depth)
isl_bool isl_schedule_band_plain_is_equal(__isl_keep isl_schedule_band *band1, __isl_keep isl_schedule_band *band2)
__isl_give isl_schedule_band * isl_schedule_band_set_ast_build_options(__isl_take isl_schedule_band *band, __isl_take isl_union_set *options)
__isl_give isl_schedule_band * isl_schedule_band_intersect_domain(__isl_take isl_schedule_band *band, __isl_take isl_union_set *domain)
__isl_give isl_schedule_band * isl_schedule_band_from_multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *mupa)
enum isl_ast_loop_type isl_schedule_band_member_get_ast_loop_type(__isl_keep isl_schedule_band *band, int pos)
enum isl_ast_loop_type isl_schedule_band_member_get_isolate_ast_loop_type(__isl_keep isl_schedule_band *band, int pos)
__isl_give isl_schedule_band * isl_schedule_band_set_partial_schedule(__isl_take isl_schedule_band *band, __isl_take isl_multi_union_pw_aff *schedule)
isl_bool isl_schedule_band_member_get_coincident(__isl_keep isl_schedule_band *band, int pos)
__isl_null isl_schedule_band * isl_schedule_band_free(__isl_take isl_schedule_band *band)
__isl_give isl_schedule_band * isl_schedule_band_set_permutable(__isl_take isl_schedule_band *band, int permutable)
const char * tile
Definition: isl_test.c:10699
enum isl_fold type
Definition: isl_test.c:4017
const char * schedule
Definition: isl_test.c:10697
const char * context
Definition: isl_test.c:1784
const char * sizes
Definition: isl_test.c:10698
const char * mupa
Definition: isl_test.c:7365
struct isl_set isl_set
Definition: map_type.h:26
enum isl_ast_loop_type * isolate_loop_type
isl_multi_union_pw_aff * mupa
isl_union_set * ast_build_options
enum isl_ast_loop_type * loop_type
static Signature domain
struct isl_union_set isl_union_set
struct isl_multi_val isl_multi_val
Definition: val_type.h:16
n
Definition: youcefn.c:8