Polly 20.0.0git
Classes | Functions | Variables
isl_schedule_band.c File Reference
#include <string.h>
#include <isl/val.h>
#include <isl/space.h>
#include <isl/map.h>
#include <isl/schedule_node.h>
#include <isl_schedule_band.h>
#include <isl_schedule_private.h>

Go to the source code of this file.

Classes

struct  isl_not_data
 

Functions

isl_ctxisl_schedule_band_get_ctx (__isl_keep isl_schedule_band *band)
 
static __isl_give isl_schedule_bandisl_schedule_band_alloc (isl_ctx *ctx)
 
__isl_give isl_schedule_bandisl_schedule_band_from_multi_union_pw_aff (__isl_take isl_multi_union_pw_aff *mupa)
 
__isl_give isl_schedule_bandisl_schedule_band_dup (__isl_keep isl_schedule_band *band)
 
__isl_give isl_schedule_bandisl_schedule_band_cow (__isl_take isl_schedule_band *band)
 
__isl_give isl_schedule_bandisl_schedule_band_copy (__isl_keep isl_schedule_band *band)
 
__isl_null isl_schedule_bandisl_schedule_band_free (__isl_take isl_schedule_band *band)
 
isl_bool isl_schedule_band_plain_is_equal (__isl_keep isl_schedule_band *band1, __isl_keep isl_schedule_band *band2)
 
isl_size isl_schedule_band_n_member (__isl_keep isl_schedule_band *band)
 
isl_bool isl_schedule_band_member_get_coincident (__isl_keep isl_schedule_band *band, int pos)
 
__isl_give isl_schedule_bandisl_schedule_band_member_set_coincident (__isl_take isl_schedule_band *band, int pos, int coincident)
 
isl_bool isl_schedule_band_get_permutable (__isl_keep isl_schedule_band *band)
 
__isl_give isl_schedule_bandisl_schedule_band_set_permutable (__isl_take isl_schedule_band *band, int permutable)
 
int isl_schedule_band_is_anchored (__isl_keep isl_schedule_band *band)
 
__isl_give isl_spaceisl_schedule_band_get_space (__isl_keep isl_schedule_band *band)
 
__isl_give isl_schedule_bandisl_schedule_band_intersect_domain (__isl_take isl_schedule_band *band, __isl_take isl_union_set *domain)
 
__isl_give isl_multi_union_pw_affisl_schedule_band_get_partial_schedule (__isl_keep isl_schedule_band *band)
 
__isl_give isl_schedule_bandisl_schedule_band_set_partial_schedule (__isl_take isl_schedule_band *band, __isl_take isl_multi_union_pw_aff *schedule)
 
enum isl_ast_loop_type isl_schedule_band_member_get_ast_loop_type (__isl_keep isl_schedule_band *band, int pos)
 
__isl_give isl_schedule_bandisl_schedule_band_member_set_ast_loop_type (__isl_take isl_schedule_band *band, int pos, enum isl_ast_loop_type type)
 
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_bandisl_schedule_band_member_set_isolate_ast_loop_type (__isl_take isl_schedule_band *band, int pos, enum isl_ast_loop_type type)
 
static __isl_give isl_spaceloop_type_space (__isl_take isl_space *space, enum isl_ast_loop_type type, int isolate)
 
static __isl_give isl_union_setadd_loop_types (__isl_take isl_union_set *options, int n, enum isl_ast_loop_type *type, int isolate)
 
__isl_give isl_union_setisl_schedule_band_get_ast_build_options (__isl_keep isl_schedule_band *band)
 
static isl_bool not (__isl_keep isl_set *set, void *user)
 
static isl_bool has_any (__isl_keep isl_union_set *uset, isl_bool(*is)(__isl_keep isl_set *set))
 
static isl_bool is_isolate (__isl_keep isl_set *set)
 
static isl_bool has_isolate_option (__isl_keep isl_union_set *options)
 
static isl_bool is_loop_type_option (__isl_keep isl_set *set)
 
static isl_bool is_isolate_loop_type_option (__isl_keep isl_set *set)
 
static isl_bool has_isolate_loop_type_options (__isl_keep isl_union_set *options)
 
static isl_bool has_loop_type_options (__isl_keep isl_union_set *options)
 
static enum isl_ast_loop_type extract_loop_type (__isl_keep isl_union_set *options, int pos, int isolate)
 
static int extract_loop_types (__isl_keep isl_schedule_band *band, __isl_keep isl_union_set *options)
 
static int extract_isolate_loop_types (__isl_keep isl_schedule_band *band, __isl_keep isl_union_set *options)
 
static __isl_give isl_union_setloop_types (__isl_take isl_space *space, int isolate)
 
static __isl_give isl_union_setclear_loop_types (__isl_take isl_union_set *options)
 
static __isl_give isl_union_setclear_isolate_loop_types (__isl_take isl_union_set *options)
 
__isl_give isl_schedule_bandisl_schedule_band_set_ast_build_options (__isl_take isl_schedule_band *band, __isl_take isl_union_set *options)
 
__isl_give isl_setisl_schedule_band_get_ast_isolate_option (__isl_keep isl_schedule_band *band, int depth)
 
__isl_give isl_schedule_bandisl_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_bandisl_schedule_band_scale (__isl_take isl_schedule_band *band, __isl_take isl_multi_val *mv)
 
__isl_give isl_schedule_bandisl_schedule_band_scale_down (__isl_take isl_schedule_band *band, __isl_take isl_multi_val *mv)
 
__isl_give isl_schedule_bandisl_schedule_band_mod (__isl_take isl_schedule_band *band, __isl_take isl_multi_val *mv)
 
__isl_give isl_schedule_bandisl_schedule_band_shift (__isl_take isl_schedule_band *band, __isl_take isl_multi_union_pw_aff *shift)
 
static isl_multi_union_pw_affisl_multi_union_pw_aff_tile (__isl_take isl_multi_union_pw_aff *sched, __isl_take isl_multi_val *sizes)
 
__isl_give isl_schedule_bandisl_schedule_band_tile (__isl_take isl_schedule_band *band, __isl_take isl_multi_val *sizes)
 
__isl_give isl_schedule_bandisl_schedule_band_point (__isl_take isl_schedule_band *band, __isl_keep isl_schedule_band *tile, __isl_take isl_multi_val *sizes)
 
__isl_give isl_schedule_bandisl_schedule_band_drop (__isl_take isl_schedule_band *band, int pos, int n)
 
__isl_give isl_schedule_bandisl_schedule_band_reset_user (__isl_take isl_schedule_band *band)
 
__isl_give isl_schedule_bandisl_schedule_band_align_params (__isl_take isl_schedule_band *band, __isl_take isl_space *space)
 
__isl_give isl_schedule_bandisl_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_bandisl_schedule_band_gist (__isl_take isl_schedule_band *band, __isl_take isl_union_set *context)
 

Variables

static const char * option_str []
 

Function Documentation

◆ add_loop_types()

static __isl_give isl_union_set * add_loop_types ( __isl_take isl_union_set options,
int  n,
enum isl_ast_loop_type type,
int  isolate 
)
static

◆ clear_isolate_loop_types()

static __isl_give isl_union_set * clear_isolate_loop_types ( __isl_take isl_union_set options)
static

◆ clear_loop_types()

static __isl_give isl_union_set * clear_loop_types ( __isl_take isl_union_set options)
static

◆ extract_isolate_loop_types()

static int extract_isolate_loop_types ( __isl_keep isl_schedule_band band,
__isl_keep isl_union_set options 
)
static

◆ extract_loop_type()

static enum isl_ast_loop_type extract_loop_type ( __isl_keep isl_union_set options,
int  pos,
int  isolate 
)
static

◆ extract_loop_types()

static int extract_loop_types ( __isl_keep isl_schedule_band band,
__isl_keep isl_union_set options 
)
static

◆ has_any()

static isl_bool has_any ( __isl_keep isl_union_set uset,
isl_bool(*)(__isl_keep isl_set *set is 
)
static

◆ has_isolate_loop_type_options()

static isl_bool has_isolate_loop_type_options ( __isl_keep isl_union_set options)
static

◆ has_isolate_option()

static isl_bool has_isolate_option ( __isl_keep isl_union_set options)
static

Definition at line 626 of file isl_schedule_band.c.

References has_any(), and is_isolate().

Referenced by isl_schedule_band_set_ast_build_options().

◆ has_loop_type_options()

static isl_bool has_loop_type_options ( __isl_keep isl_union_set options)
static

Definition at line 702 of file isl_schedule_band.c.

References has_any(), and is_loop_type_option().

Referenced by isl_schedule_band_set_ast_build_options().

◆ is_isolate()

static isl_bool is_isolate ( __isl_keep isl_set set)
static

◆ is_isolate_loop_type_option()

static isl_bool is_isolate_loop_type_option ( __isl_keep isl_set set)
static

◆ is_loop_type_option()

static isl_bool is_loop_type_option ( __isl_keep isl_set set)
static

◆ isl_multi_union_pw_aff_tile()

static isl_multi_union_pw_aff * isl_multi_union_pw_aff_tile ( __isl_take isl_multi_union_pw_aff sched,
__isl_take isl_multi_val sizes 
)
static

◆ isl_schedule_band_align_params()

__isl_give isl_schedule_band * isl_schedule_band_align_params ( __isl_take isl_schedule_band band,
__isl_take isl_space space 
)

◆ isl_schedule_band_alloc()

static __isl_give isl_schedule_band * isl_schedule_band_alloc ( isl_ctx ctx)
static

◆ isl_schedule_band_copy()

__isl_give isl_schedule_band * isl_schedule_band_copy ( __isl_keep isl_schedule_band band)

Definition at line 149 of file isl_schedule_band.c.

References isl_schedule_band::ref.

Referenced by isl_schedule_tree_dup().

◆ isl_schedule_band_cow()

__isl_give isl_schedule_band * isl_schedule_band_cow ( __isl_take isl_schedule_band band)

◆ isl_schedule_band_drop()

__isl_give isl_schedule_band * isl_schedule_band_drop ( __isl_take isl_schedule_band band,
int  pos,
int  n 
)

◆ isl_schedule_band_dup()

__isl_give isl_schedule_band * isl_schedule_band_dup ( __isl_keep isl_schedule_band band)

◆ isl_schedule_band_free()

__isl_null isl_schedule_band * isl_schedule_band_free ( __isl_take isl_schedule_band band)

◆ isl_schedule_band_from_multi_union_pw_aff()

__isl_give isl_schedule_band * isl_schedule_band_from_multi_union_pw_aff ( __isl_take isl_multi_union_pw_aff mupa)

◆ isl_schedule_band_get_ast_build_options()

__isl_give isl_union_set * isl_schedule_band_get_ast_build_options ( __isl_keep isl_schedule_band band)

◆ isl_schedule_band_get_ast_isolate_option()

__isl_give isl_set * isl_schedule_band_get_ast_isolate_option ( __isl_keep isl_schedule_band band,
int  depth 
)

◆ isl_schedule_band_get_ctx()

isl_ctx * isl_schedule_band_get_ctx ( __isl_keep isl_schedule_band band)

◆ isl_schedule_band_get_partial_schedule()

__isl_give isl_multi_union_pw_aff * isl_schedule_band_get_partial_schedule ( __isl_keep isl_schedule_band band)

◆ isl_schedule_band_get_permutable()

isl_bool isl_schedule_band_get_permutable ( __isl_keep isl_schedule_band band)

Definition at line 273 of file isl_schedule_band.c.

References isl_bool_error, and isl_bool_ok().

Referenced by isl_schedule_tree_band_get_permutable(), and print_tree_band().

◆ isl_schedule_band_get_space()

__isl_give isl_space * isl_schedule_band_get_space ( __isl_keep isl_schedule_band band)

◆ isl_schedule_band_gist()

__isl_give isl_schedule_band * isl_schedule_band_gist ( __isl_take isl_schedule_band band,
__isl_take isl_union_set context 
)

◆ isl_schedule_band_intersect_domain()

__isl_give isl_schedule_band * isl_schedule_band_intersect_domain ( __isl_take isl_schedule_band band,
__isl_take isl_union_set domain 
)

◆ isl_schedule_band_is_anchored()

int isl_schedule_band_is_anchored ( __isl_keep isl_schedule_band band)

◆ isl_schedule_band_member_get_ast_loop_type()

enum isl_ast_loop_type isl_schedule_band_member_get_ast_loop_type ( __isl_keep isl_schedule_band band,
int  pos 
)

◆ isl_schedule_band_member_get_coincident()

isl_bool isl_schedule_band_member_get_coincident ( __isl_keep isl_schedule_band band,
int  pos 
)

◆ isl_schedule_band_member_get_isolate_ast_loop_type()

enum isl_ast_loop_type isl_schedule_band_member_get_isolate_ast_loop_type ( __isl_keep isl_schedule_band band,
int  pos 
)

◆ isl_schedule_band_member_set_ast_loop_type()

__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_schedule_band_member_set_coincident()

__isl_give isl_schedule_band * isl_schedule_band_member_set_coincident ( __isl_take isl_schedule_band band,
int  pos,
int  coincident 
)

◆ isl_schedule_band_member_set_isolate_ast_loop_type()

__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_schedule_band_mod()

__isl_give isl_schedule_band * isl_schedule_band_mod ( __isl_take isl_schedule_band band,
__isl_take isl_multi_val mv 
)

Definition at line 1017 of file isl_schedule_band.c.

References isl_schedule_band_cow(), and isl_schedule_band_free().

Referenced by isl_schedule_tree_band_mod().

◆ isl_schedule_band_n_member()

isl_size isl_schedule_band_n_member ( __isl_keep isl_schedule_band band)

◆ isl_schedule_band_plain_is_equal()

isl_bool isl_schedule_band_plain_is_equal ( __isl_keep isl_schedule_band band1,
__isl_keep isl_schedule_band band2 
)

◆ isl_schedule_band_point()

__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_schedule_band_pullback_union_pw_multi_aff()

__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_schedule_band_replace_ast_build_option()

__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_schedule_band_reset_user()

__isl_give isl_schedule_band * isl_schedule_band_reset_user ( __isl_take isl_schedule_band band)

◆ isl_schedule_band_scale()

__isl_give isl_schedule_band * isl_schedule_band_scale ( __isl_take isl_schedule_band band,
__isl_take isl_multi_val mv 
)

◆ isl_schedule_band_scale_down()

__isl_give isl_schedule_band * isl_schedule_band_scale_down ( __isl_take isl_schedule_band band,
__isl_take isl_multi_val mv 
)

◆ isl_schedule_band_set_ast_build_options()

__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_schedule_band_set_partial_schedule()

__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_schedule_band_set_permutable()

__isl_give isl_schedule_band * isl_schedule_band_set_permutable ( __isl_take isl_schedule_band band,
int  permutable 
)

Definition at line 282 of file isl_schedule_band.c.

References isl_schedule_band_cow().

Referenced by isl_schedule_tree_band_set_permutable(), and read_band().

◆ isl_schedule_band_shift()

__isl_give isl_schedule_band * isl_schedule_band_shift ( __isl_take isl_schedule_band band,
__isl_take isl_multi_union_pw_aff shift 
)

◆ isl_schedule_band_tile()

__isl_give isl_schedule_band * isl_schedule_band_tile ( __isl_take isl_schedule_band band,
__isl_take isl_multi_val sizes 
)

◆ loop_type_space()

static __isl_give isl_space * loop_type_space ( __isl_take isl_space space,
enum isl_ast_loop_type  type,
int  isolate 
)
static

◆ loop_types()

static __isl_give isl_union_set * loop_types ( __isl_take isl_space space,
int  isolate 
)
static

◆ not()

static isl_bool not ( __isl_keep isl_set set,
void *  user 
)
static

Definition at line 584 of file isl_schedule_band.c.

References isl_not_data::is, isl_bool_not(), set, and user.

Referenced by has_any(), and isl_qpolynomial_fold_involves_dims().

Variable Documentation

◆ option_str

const char* option_str[]
static
Initial value:
= {
[isl_ast_loop_atomic] = "atomic",
[isl_ast_loop_unroll] = "unroll",
[isl_ast_loop_separate] = "separate"
}
@ isl_ast_loop_atomic
Definition: ast_type.h:94
@ isl_ast_loop_separate
Definition: ast_type.h:96
@ isl_ast_loop_unroll
Definition: ast_type.h:95

Definition at line 478 of file isl_schedule_band.c.

Referenced by is_isolate_loop_type_option(), is_loop_type_option(), and loop_type_space().