Polly 20.0.0git
Macros | Functions
isl_schedule.c File Reference
#include <isl/ctx.h>
#include <isl/val.h>
#include <isl_aff_private.h>
#include <isl/map.h>
#include <isl/set.h>
#include <isl/schedule.h>
#include <isl/schedule_node.h>
#include <isl_sort.h>
#include <isl/printer.h>
#include <isl_schedule_private.h>
#include <isl_schedule_tree.h>
#include <isl_schedule_node_private.h>
#include <print_templ_yaml.c>

Go to the source code of this file.

Macros

#define BASE   schedule
 

Functions

__isl_give isl_scheduleisl_schedule_from_schedule_tree (isl_ctx *ctx, __isl_take isl_schedule_tree *tree)
 
__isl_give isl_scheduleisl_schedule_from_domain (__isl_take isl_union_set *domain)
 
__isl_give isl_scheduleisl_schedule_empty (__isl_take isl_space *space)
 
__isl_give isl_scheduleisl_schedule_copy (__isl_keep isl_schedule *sched)
 
__isl_give isl_scheduleisl_schedule_cow (__isl_take isl_schedule *schedule)
 
__isl_null isl_scheduleisl_schedule_free (__isl_take isl_schedule *sched)
 
__isl_give isl_scheduleisl_schedule_set_root (__isl_take isl_schedule *schedule, __isl_take isl_schedule_tree *tree)
 
isl_ctxisl_schedule_get_ctx (__isl_keep isl_schedule *schedule)
 
__isl_keep isl_schedule_treeisl_schedule_peek_leaf (__isl_keep isl_schedule *schedule)
 
isl_bool isl_schedule_plain_is_equal (__isl_keep isl_schedule *schedule1, __isl_keep isl_schedule *schedule2)
 
__isl_give isl_spaceisl_schedule_get_space (__isl_keep isl_schedule *schedule)
 
__isl_give isl_schedule_nodeisl_schedule_get_root (__isl_keep isl_schedule *schedule)
 
__isl_give isl_union_setisl_schedule_get_domain (__isl_keep isl_schedule *schedule)
 
isl_stat isl_schedule_foreach_schedule_node_top_down (__isl_keep isl_schedule *sched, isl_bool(*fn)(__isl_keep isl_schedule_node *node, void *user), void *user)
 
__isl_give isl_scheduleisl_schedule_map_schedule_node_bottom_up (__isl_take isl_schedule *schedule, __isl_give isl_schedule_node *(*fn)(__isl_take isl_schedule_node *node, void *user), void *user)
 
static __isl_give isl_schedule_nodereset_user (__isl_take isl_schedule_node *node, void *user)
 
__isl_give isl_scheduleisl_schedule_reset_user (__isl_take isl_schedule *schedule)
 
static __isl_give isl_schedule_nodealign_params (__isl_take isl_schedule_node *node, void *user)
 
__isl_give isl_scheduleisl_schedule_align_params (__isl_take isl_schedule *schedule, __isl_take isl_space *space)
 
static __isl_give isl_schedule_nodepullback_upma (__isl_take isl_schedule_node *node, void *user)
 
__isl_give isl_scheduleisl_schedule_pullback_union_pw_multi_aff (__isl_take isl_schedule *schedule, __isl_take isl_union_pw_multi_aff *upma)
 
__isl_give isl_scheduleisl_schedule_expand (__isl_take isl_schedule *schedule, __isl_take isl_union_pw_multi_aff *contraction, __isl_take isl_schedule *expansion)
 
__isl_give isl_scheduleisl_schedule_intersect_domain (__isl_take isl_schedule *schedule, __isl_take isl_union_set *domain)
 
__isl_give isl_scheduleisl_schedule_gist_domain_params (__isl_take isl_schedule *schedule, __isl_take isl_set *context)
 
__isl_give isl_union_mapisl_schedule_get_map (__isl_keep isl_schedule *sched)
 
__isl_give isl_scheduleisl_schedule_insert_partial_schedule (__isl_take isl_schedule *schedule, __isl_take isl_multi_union_pw_aff *partial)
 
__isl_give isl_scheduleisl_schedule_insert_context (__isl_take isl_schedule *schedule, __isl_take isl_set *context)
 
__isl_give isl_scheduleisl_schedule_insert_guard (__isl_take isl_schedule *schedule, __isl_take isl_set *guard)
 
static __isl_give isl_schedule_treeinsert_filter_in_child_of_type (__isl_take isl_schedule_tree *tree, __isl_take isl_union_set *filter, enum isl_schedule_node_type type)
 
__isl_give isl_scheduleisl_schedule_pair (enum isl_schedule_node_type type, __isl_take isl_schedule *schedule1, __isl_take isl_schedule *schedule2)
 
__isl_give isl_scheduleisl_schedule_sequence (__isl_take isl_schedule *schedule1, __isl_take isl_schedule *schedule2)
 
__isl_give isl_scheduleisl_schedule_set (__isl_take isl_schedule *schedule1, __isl_take isl_schedule *schedule2)
 
__isl_give isl_printerisl_printer_print_schedule (__isl_take isl_printer *p, __isl_keep isl_schedule *schedule)
 

Macro Definition Documentation

◆ BASE

#define BASE   schedule

Definition at line 683 of file isl_schedule.c.

Function Documentation

◆ align_params()

static __isl_give isl_schedule_node * align_params ( __isl_take isl_schedule_node node,
void *  user 
)
static

Definition at line 311 of file isl_schedule.c.

References isl_schedule_node_align_params(), isl_space_copy(), and user.

Referenced by FN(), isl_schedule_align_params(), and MULTI().

◆ insert_filter_in_child_of_type()

static __isl_give isl_schedule_tree * insert_filter_in_child_of_type ( __isl_take isl_schedule_tree tree,
__isl_take isl_union_set filter,
enum isl_schedule_node_type  type 
)
static

◆ isl_printer_print_schedule()

__isl_give isl_printer * isl_printer_print_schedule ( __isl_take isl_printer p,
__isl_keep isl_schedule schedule 
)

◆ isl_schedule_align_params()

__isl_give isl_schedule * isl_schedule_align_params ( __isl_take isl_schedule schedule,
__isl_take isl_space space 
)

◆ isl_schedule_copy()

__isl_give isl_schedule * isl_schedule_copy ( __isl_keep isl_schedule sched)

◆ isl_schedule_cow()

__isl_give isl_schedule * isl_schedule_cow ( __isl_take isl_schedule schedule)

◆ isl_schedule_empty()

__isl_give isl_schedule * isl_schedule_empty ( __isl_take isl_space space)

Definition at line 86 of file isl_schedule.c.

References isl_schedule_from_domain(), and isl_union_set_empty().

Referenced by isl_union_access_info_init().

◆ isl_schedule_expand()

__isl_give isl_schedule * isl_schedule_expand ( __isl_take isl_schedule schedule,
__isl_take isl_union_pw_multi_aff contraction,
__isl_take isl_schedule expansion 
)

◆ isl_schedule_foreach_schedule_node_top_down()

isl_stat isl_schedule_foreach_schedule_node_top_down ( __isl_keep isl_schedule sched,
isl_bool(*)(__isl_keep isl_schedule_node *node, void *user fn,
void *  user 
)

◆ isl_schedule_free()

__isl_null isl_schedule * isl_schedule_free ( __isl_take isl_schedule sched)

◆ isl_schedule_from_domain()

__isl_give isl_schedule * isl_schedule_from_domain ( __isl_take isl_union_set domain)

◆ isl_schedule_from_schedule_tree()

__isl_give isl_schedule * isl_schedule_from_schedule_tree ( isl_ctx ctx,
__isl_take isl_schedule_tree tree 
)

◆ isl_schedule_get_ctx()

isl_ctx * isl_schedule_get_ctx ( __isl_keep isl_schedule schedule)

◆ isl_schedule_get_domain()

__isl_give isl_union_set * isl_schedule_get_domain ( __isl_keep isl_schedule schedule)

◆ isl_schedule_get_map()

__isl_give isl_union_map * isl_schedule_get_map ( __isl_keep isl_schedule sched)

◆ isl_schedule_get_root()

__isl_give isl_schedule_node * isl_schedule_get_root ( __isl_keep isl_schedule schedule)

◆ isl_schedule_get_space()

__isl_give isl_space * isl_schedule_get_space ( __isl_keep isl_schedule schedule)

◆ isl_schedule_gist_domain_params()

__isl_give isl_schedule * isl_schedule_gist_domain_params ( __isl_take isl_schedule schedule,
__isl_take isl_set context 
)

◆ isl_schedule_insert_context()

__isl_give isl_schedule * isl_schedule_insert_context ( __isl_take isl_schedule schedule,
__isl_take isl_set context 
)

◆ isl_schedule_insert_guard()

__isl_give isl_schedule * isl_schedule_insert_guard ( __isl_take isl_schedule schedule,
__isl_take isl_set guard 
)

◆ isl_schedule_insert_partial_schedule()

__isl_give isl_schedule * isl_schedule_insert_partial_schedule ( __isl_take isl_schedule schedule,
__isl_take isl_multi_union_pw_aff partial 
)

◆ isl_schedule_intersect_domain()

__isl_give isl_schedule * isl_schedule_intersect_domain ( __isl_take isl_schedule schedule,
__isl_take isl_union_set domain 
)

◆ isl_schedule_map_schedule_node_bottom_up()

__isl_give isl_schedule * isl_schedule_map_schedule_node_bottom_up ( __isl_take isl_schedule schedule,
__isl_give isl_schedule_node *(*)(__isl_take isl_schedule_node *node, void *user fn,
void *  user 
)

◆ isl_schedule_pair()

__isl_give isl_schedule * isl_schedule_pair ( enum isl_schedule_node_type  type,
__isl_take isl_schedule schedule1,
__isl_take isl_schedule schedule2 
)

◆ isl_schedule_peek_leaf()

__isl_keep isl_schedule_tree * isl_schedule_peek_leaf ( __isl_keep isl_schedule schedule)

Definition at line 167 of file isl_schedule.c.

References schedule.

Referenced by isl_schedule_node_peek_leaf().

◆ isl_schedule_plain_is_equal()

isl_bool isl_schedule_plain_is_equal ( __isl_keep isl_schedule schedule1,
__isl_keep isl_schedule schedule2 
)

Definition at line 175 of file isl_schedule.c.

References isl_bool_error, isl_bool_true, and isl_schedule_tree_plain_is_equal().

Referenced by main().

◆ isl_schedule_pullback_union_pw_multi_aff()

__isl_give isl_schedule * isl_schedule_pullback_union_pw_multi_aff ( __isl_take isl_schedule schedule,
__isl_take isl_union_pw_multi_aff upma 
)

◆ isl_schedule_reset_user()

__isl_give isl_schedule * isl_schedule_reset_user ( __isl_take isl_schedule schedule)

◆ isl_schedule_sequence()

__isl_give isl_schedule * isl_schedule_sequence ( __isl_take isl_schedule schedule1,
__isl_take isl_schedule schedule2 
)

Definition at line 654 of file isl_schedule.c.

References isl_schedule_node_sequence, and isl_schedule_pair().

Referenced by isl::schedule::sequence(), and test_schedule_tree().

◆ isl_schedule_set()

__isl_give isl_schedule * isl_schedule_set ( __isl_take isl_schedule schedule1,
__isl_take isl_schedule schedule2 
)

Definition at line 665 of file isl_schedule.c.

References isl_schedule_node_set, and isl_schedule_pair().

◆ isl_schedule_set_root()

__isl_give isl_schedule * isl_schedule_set_root ( __isl_take isl_schedule schedule,
__isl_take isl_schedule_tree tree 
)

Definition at line 137 of file isl_schedule.c.

References isl_schedule_cow(), isl_schedule_free(), isl_schedule_tree_free(), schedule, and tree.

Referenced by update_ancestors().

◆ pullback_upma()

static __isl_give isl_schedule_node * pullback_upma ( __isl_take isl_schedule_node node,
void *  user 
)
static

◆ reset_user()

static __isl_give isl_schedule_node * reset_user ( __isl_take isl_schedule_node node,
void *  user 
)
static

Definition at line 292 of file isl_schedule.c.

References isl_schedule_node_reset_user().

Referenced by FN(), and isl_schedule_reset_user().