Polly 20.0.0git
Macros | Typedefs | Functions
ast_build.h File Reference
#include <isl/ctx.h>
#include <isl/set.h>
#include <isl/ast.h>
#include <isl/schedule.h>

Go to the source code of this file.

Macros

#define ISL_AST_BUILD_SEPARATION_BOUNDS_EXPLICIT   0
 
#define ISL_AST_BUILD_SEPARATION_BOUNDS_IMPLICIT   1
 

Typedefs

typedef struct isl_ast_build isl_ast_build
 

Functions

isl_stat isl_options_set_ast_build_atomic_upper_bound (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_atomic_upper_bound (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_prefer_pdiv (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_prefer_pdiv (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_detect_min_max (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_detect_min_max (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_exploit_nested_bounds (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_exploit_nested_bounds (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_group_coscheduled (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_group_coscheduled (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_separation_bounds (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_separation_bounds (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_scale_strides (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_scale_strides (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_allow_else (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_allow_else (isl_ctx *ctx)
 
isl_stat isl_options_set_ast_build_allow_or (isl_ctx *ctx, int val)
 
int isl_options_get_ast_build_allow_or (isl_ctx *ctx)
 
isl_ctxisl_ast_build_get_ctx (__isl_keep isl_ast_build *build)
 
__isl_constructor __isl_give isl_ast_buildisl_ast_build_alloc (isl_ctx *ctx)
 
__isl_export __isl_give isl_ast_buildisl_ast_build_from_context (__isl_take isl_set *set)
 
__isl_give isl_spaceisl_ast_build_get_schedule_space (__isl_keep isl_ast_build *build)
 
__isl_export __isl_give isl_union_mapisl_ast_build_get_schedule (__isl_keep isl_ast_build *build)
 
__isl_give isl_ast_buildisl_ast_build_restrict (__isl_take isl_ast_build *build, __isl_take isl_set *set)
 
__isl_give isl_ast_buildisl_ast_build_copy (__isl_keep isl_ast_build *build)
 
__isl_null isl_ast_buildisl_ast_build_free (__isl_take isl_ast_build *build)
 
__isl_give isl_ast_buildisl_ast_build_set_options (__isl_take isl_ast_build *build, __isl_take isl_union_map *options)
 
__isl_give isl_ast_buildisl_ast_build_set_iterators (__isl_take isl_ast_build *build, __isl_take isl_id_list *iterators)
 
__isl_export __isl_give isl_ast_buildisl_ast_build_set_at_each_domain (__isl_take isl_ast_build *build, __isl_give isl_ast_node *(*fn)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build, void *user), void *user)
 
__isl_give isl_ast_buildisl_ast_build_set_before_each_for (__isl_take isl_ast_build *build, __isl_give isl_id *(*fn)(__isl_keep isl_ast_build *build, void *user), void *user)
 
__isl_give isl_ast_buildisl_ast_build_set_after_each_for (__isl_take isl_ast_build *build, __isl_give isl_ast_node *(*fn)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build, void *user), void *user)
 
__isl_give isl_ast_buildisl_ast_build_set_before_each_mark (__isl_take isl_ast_build *build, isl_stat(*fn)(__isl_keep isl_id *mark, __isl_keep isl_ast_build *build, void *user), void *user)
 
__isl_give isl_ast_buildisl_ast_build_set_after_each_mark (__isl_take isl_ast_build *build, __isl_give isl_ast_node *(*fn)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build, void *user), void *user)
 
__isl_give isl_ast_buildisl_ast_build_set_create_leaf (__isl_take isl_ast_build *build, __isl_give isl_ast_node *(*fn)(__isl_take isl_ast_build *build, void *user), void *user)
 
__isl_overload __isl_give isl_ast_exprisl_ast_build_expr_from_set (__isl_keep isl_ast_build *build, __isl_take isl_set *set)
 
__isl_overload __isl_give isl_ast_exprisl_ast_build_expr_from_pw_aff (__isl_keep isl_ast_build *build, __isl_take isl_pw_aff *pa)
 
__isl_overload __isl_give isl_ast_exprisl_ast_build_access_from_pw_multi_aff (__isl_keep isl_ast_build *build, __isl_take isl_pw_multi_aff *pma)
 
__isl_overload __isl_give isl_ast_exprisl_ast_build_access_from_multi_pw_aff (__isl_keep isl_ast_build *build, __isl_take isl_multi_pw_aff *mpa)
 
__isl_overload __isl_give isl_ast_exprisl_ast_build_call_from_pw_multi_aff (__isl_keep isl_ast_build *build, __isl_take isl_pw_multi_aff *pma)
 
__isl_overload __isl_give isl_ast_exprisl_ast_build_call_from_multi_pw_aff (__isl_keep isl_ast_build *build, __isl_take isl_multi_pw_aff *mpa)
 
__isl_overload __isl_give isl_ast_nodeisl_ast_build_node_from_schedule (__isl_keep isl_ast_build *build, __isl_take isl_schedule *schedule)
 
__isl_export __isl_give isl_ast_nodeisl_ast_build_node_from_schedule_map (__isl_keep isl_ast_build *build, __isl_take isl_union_map *schedule)
 
__isl_give isl_ast_nodeisl_ast_build_ast_from_schedule (__isl_keep isl_ast_build *build, __isl_take isl_union_map *schedule)
 

Macro Definition Documentation

◆ ISL_AST_BUILD_SEPARATION_BOUNDS_EXPLICIT

#define ISL_AST_BUILD_SEPARATION_BOUNDS_EXPLICIT   0

Definition at line 32 of file ast_build.h.

◆ ISL_AST_BUILD_SEPARATION_BOUNDS_IMPLICIT

#define ISL_AST_BUILD_SEPARATION_BOUNDS_IMPLICIT   1

Definition at line 33 of file ast_build.h.

Typedef Documentation

◆ isl_ast_build

Definition at line 14 of file ast_build.h.

Function Documentation

◆ isl_ast_build_access_from_multi_pw_aff()

__isl_overload __isl_give isl_ast_expr * isl_ast_build_access_from_multi_pw_aff ( __isl_keep isl_ast_build build,
__isl_take isl_multi_pw_aff mpa 
)

◆ isl_ast_build_access_from_pw_multi_aff()

__isl_overload __isl_give isl_ast_expr * isl_ast_build_access_from_pw_multi_aff ( __isl_keep isl_ast_build build,
__isl_take isl_pw_multi_aff pma 
)

◆ isl_ast_build_alloc()

__isl_constructor __isl_give isl_ast_build * isl_ast_build_alloc ( isl_ctx ctx)

◆ isl_ast_build_ast_from_schedule()

__isl_give isl_ast_node * isl_ast_build_ast_from_schedule ( __isl_keep isl_ast_build build,
__isl_take isl_union_map schedule 
)

◆ isl_ast_build_call_from_multi_pw_aff()

__isl_overload __isl_give isl_ast_expr * isl_ast_build_call_from_multi_pw_aff ( __isl_keep isl_ast_build build,
__isl_take isl_multi_pw_aff mpa 
)

◆ isl_ast_build_call_from_pw_multi_aff()

__isl_overload __isl_give isl_ast_expr * isl_ast_build_call_from_pw_multi_aff ( __isl_keep isl_ast_build build,
__isl_take isl_pw_multi_aff pma 
)

◆ isl_ast_build_copy()

__isl_give isl_ast_build * isl_ast_build_copy ( __isl_keep isl_ast_build build)

◆ isl_ast_build_expr_from_pw_aff()

__isl_overload __isl_give isl_ast_expr * isl_ast_build_expr_from_pw_aff ( __isl_keep isl_ast_build build,
__isl_take isl_pw_aff pa 
)

◆ isl_ast_build_expr_from_set()

__isl_overload __isl_give isl_ast_expr * isl_ast_build_expr_from_set ( __isl_keep isl_ast_build build,
__isl_take isl_set set 
)

◆ isl_ast_build_free()

__isl_null isl_ast_build * isl_ast_build_free ( __isl_take isl_ast_build build)

Definition at line 303 of file isl_ast_build.c.

References isl_pw_aff_free(), isl_schedule_node_free(), isl_set_free(), isl_union_map_free(), and isl_vec_free().

Referenced by add_domain(), add_intermediate_piece(), add_last_piece(), add_node(), at_each_domain(), build_ast_from_band(), build_ast_from_context(), build_ast_from_domain(), build_ast_from_expansion(), build_ast_from_filter(), build_ast_from_guard(), build_ast_from_leaf(), build_ast_from_mark(), build_ast_from_schedule_node(), build_ast_from_sequence(), call_create_leaf(), construct_ast_from_schedule(), construct_ast_from_union_map(), create_leaf(), create_node(), create_node_scaled(), extract_loop_types(), foreach_iteration(), generate_code(), generate_component(), generate_components(), generate_inner_level(), generate_next_level(), generate_shift_component(), generate_shifted_component_flat(), generate_shifted_component_parts(), generate_shifted_component_tree(), generate_shifted_component_tree_base(), generate_shifted_component_tree_part(), generate_shifted_component_tree_separate(), generate_shifted_component_tree_unroll(), polly::IslAst::init(), isl_ast_build_align_params(), isl_ast_build_clear_local_info(), isl_ast_build_detect_strides(), isl_ast_build_dup(), isl_ast_build_expr_from_basic_set(), isl_ast_build_extract_isolated(), isl_ast_build_include_stride(), isl_ast_build_init(), isl_ast_build_init_derived(), isl_ast_build_insert_dim(), isl_ast_build_node_from_schedule(), isl_ast_build_node_from_schedule_map(), isl_ast_build_product(), isl_ast_build_replace_pending_by_guard(), isl_ast_build_restrict(), isl_ast_build_restrict_generated(), isl_ast_build_restrict_internal(), isl_ast_build_scale_down(), isl_ast_build_set_executed(), isl_ast_build_set_iterators(), isl_ast_build_set_loop_bounds(), isl_ast_build_set_options(), isl_ast_build_set_pending_generated(), isl_ast_build_set_schedule_node(), isl_ast_graft_alloc_from_children(), node_insert_dim(), polly::IslNodeBuilder::preloadInvariantLoad(), print_pw_aff_c(), set_stride(), test_ast_build(), test_ast_expr(), test_ast_gen1(), test_ast_gen2(), test_ast_gen3(), test_ast_gen4(), test_ast_gen5(), update_values(), and isl::ast_build::~ast_build().

◆ isl_ast_build_from_context()

__isl_export __isl_give isl_ast_build * isl_ast_build_from_context ( __isl_take isl_set set)

◆ isl_ast_build_get_ctx()

isl_ctx * isl_ast_build_get_ctx ( __isl_keep isl_ast_build build)

◆ isl_ast_build_get_schedule()

__isl_export __isl_give isl_union_map * isl_ast_build_get_schedule ( __isl_keep isl_ast_build build)

◆ isl_ast_build_get_schedule_space()

__isl_give isl_space * isl_ast_build_get_schedule_space ( __isl_keep isl_ast_build build)

◆ isl_ast_build_node_from_schedule()

__isl_overload __isl_give isl_ast_node * isl_ast_build_node_from_schedule ( __isl_keep isl_ast_build build,
__isl_take isl_schedule schedule 
)

◆ isl_ast_build_node_from_schedule_map()

__isl_export __isl_give isl_ast_node * isl_ast_build_node_from_schedule_map ( __isl_keep isl_ast_build build,
__isl_take isl_union_map schedule 
)

◆ isl_ast_build_restrict()

__isl_give isl_ast_build * isl_ast_build_restrict ( __isl_take isl_ast_build build,
__isl_take isl_set set 
)

◆ isl_ast_build_set_after_each_for()

__isl_give isl_ast_build * isl_ast_build_set_after_each_for ( __isl_take isl_ast_build build,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build, void *user fn,
void *  user 
)

Definition at line 430 of file isl_ast_build.c.

References fn, isl_ast_build_cow(), and user.

Referenced by polly::IslAst::init(), and test_ast_gen1().

◆ isl_ast_build_set_after_each_mark()

__isl_give isl_ast_build * isl_ast_build_set_after_each_mark ( __isl_take isl_ast_build build,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build, void *user fn,
void *  user 
)

Definition at line 466 of file isl_ast_build.c.

References fn, isl_ast_build_cow(), and user.

Referenced by polly::IslAst::init().

◆ isl_ast_build_set_at_each_domain()

__isl_export __isl_give isl_ast_build * isl_ast_build_set_at_each_domain ( __isl_take isl_ast_build build,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build, void *user fn,
void *  user 
)

◆ isl_ast_build_set_before_each_for()

__isl_give isl_ast_build * isl_ast_build_set_before_each_for ( __isl_take isl_ast_build build,
__isl_give isl_id *(*)(__isl_keep isl_ast_build *build, void *user fn,
void *  user 
)

Definition at line 412 of file isl_ast_build.c.

References fn, isl_ast_build_cow(), and user.

Referenced by polly::IslAst::init(), and test_ast_gen1().

◆ isl_ast_build_set_before_each_mark()

__isl_give isl_ast_build * isl_ast_build_set_before_each_mark ( __isl_take isl_ast_build build,
isl_stat(*)(__isl_keep isl_id *mark, __isl_keep isl_ast_build *build, void *user fn,
void *  user 
)

Definition at line 448 of file isl_ast_build.c.

References fn, isl_ast_build_cow(), and user.

Referenced by polly::IslAst::init().

◆ isl_ast_build_set_create_leaf()

__isl_give isl_ast_build * isl_ast_build_set_create_leaf ( __isl_take isl_ast_build build,
__isl_give isl_ast_node *(*)(__isl_take isl_ast_build *build, void *user fn,
void *  user 
)

Definition at line 484 of file isl_ast_build.c.

References fn, isl_ast_build_cow(), and user.

Referenced by test_ast_gen5().

◆ isl_ast_build_set_iterators()

__isl_give isl_ast_build * isl_ast_build_set_iterators ( __isl_take isl_ast_build build,
__isl_take isl_id_list *  iterators 
)

◆ isl_ast_build_set_options()

__isl_give isl_ast_build * isl_ast_build_set_options ( __isl_take isl_ast_build build,
__isl_take isl_union_map options 
)

◆ isl_options_get_ast_build_allow_else()

int isl_options_get_ast_build_allow_else ( isl_ctx ctx)

◆ isl_options_get_ast_build_allow_or()

int isl_options_get_ast_build_allow_or ( isl_ctx ctx)

Referenced by ast_node_insert_if().

◆ isl_options_get_ast_build_atomic_upper_bound()

int isl_options_get_ast_build_atomic_upper_bound ( isl_ctx ctx)

Referenced by use_upper_bound_list().

◆ isl_options_get_ast_build_detect_min_max()

int isl_options_get_ast_build_detect_min_max ( isl_ctx ctx)

Referenced by extends(), and test_ast_expr().

◆ isl_options_get_ast_build_exploit_nested_bounds()

int isl_options_get_ast_build_exploit_nested_bounds ( isl_ctx ctx)

◆ isl_options_get_ast_build_group_coscheduled()

int isl_options_get_ast_build_group_coscheduled ( isl_ctx ctx)

Referenced by generate_components().

◆ isl_options_get_ast_build_prefer_pdiv()

int isl_options_get_ast_build_prefer_pdiv ( isl_ctx ctx)

Referenced by extract_modulos(), and var_div().

◆ isl_options_get_ast_build_scale_strides()

int isl_options_get_ast_build_scale_strides ( isl_ctx ctx)

Referenced by create_node().

◆ isl_options_get_ast_build_separation_bounds()

int isl_options_get_ast_build_separation_bounds ( isl_ctx ctx)

◆ isl_options_set_ast_build_allow_else()

isl_stat isl_options_set_ast_build_allow_else ( isl_ctx ctx,
int  val 
)

◆ isl_options_set_ast_build_allow_or()

isl_stat isl_options_set_ast_build_allow_or ( isl_ctx ctx,
int  val 
)

◆ isl_options_set_ast_build_atomic_upper_bound()

isl_stat isl_options_set_ast_build_atomic_upper_bound ( isl_ctx ctx,
int  val 
)

Referenced by polly::IslAst::init().

◆ isl_options_set_ast_build_detect_min_max()

isl_stat isl_options_set_ast_build_detect_min_max ( isl_ctx ctx,
int  val 
)

◆ isl_options_set_ast_build_exploit_nested_bounds()

isl_stat isl_options_set_ast_build_exploit_nested_bounds ( isl_ctx ctx,
int  val 
)

Referenced by test_ast_gen4().

◆ isl_options_set_ast_build_group_coscheduled()

isl_stat isl_options_set_ast_build_group_coscheduled ( isl_ctx ctx,
int  val 
)

◆ isl_options_set_ast_build_prefer_pdiv()

isl_stat isl_options_set_ast_build_prefer_pdiv ( isl_ctx ctx,
int  val 
)

◆ isl_options_set_ast_build_scale_strides()

isl_stat isl_options_set_ast_build_scale_strides ( isl_ctx ctx,
int  val 
)

◆ isl_options_set_ast_build_separation_bounds()

isl_stat isl_options_set_ast_build_separation_bounds ( isl_ctx ctx,
int  val 
)