Polly 22.0.0git
isl_ast_codegen.c File Reference
#include <limits.h>
#include <isl/id.h>
#include <isl/val.h>
#include <isl/space.h>
#include <isl/aff.h>
#include <isl/constraint.h>
#include <isl/set.h>
#include <isl/ilp.h>
#include <isl/union_set.h>
#include <isl/union_map.h>
#include <isl/schedule_node.h>
#include <isl/options.h>
#include <isl_sort.h>
#include <isl_tarjan.h>
#include <isl_ast_private.h>
#include <isl_ast_build_expr.h>
#include <isl_ast_build_private.h>
#include <isl_ast_graft_private.h>

Go to the source code of this file.

Classes

struct  isl_generate_domain_data
struct  isl_ast_count_constraints_data
struct  isl_check_scaled_data
struct  isl_add_nodes_data
struct  isl_ast_generate_parallel_domains_data
struct  isl_separate_domain_data
struct  isl_find_unroll_data
struct  isl_codegen_domains
struct  isl_ast_unroll_data
struct  isl_ast_unroll_tree_data
struct  isl_set_map_pair
struct  isl_any_scheduled_after_data
struct  isl_generate_code_data

Functions

static __isl_give isl_setisl_set_coalesce_preserve (__isl_take isl_set *set)
static __isl_give isl_ast_graft_list * generate_next_level (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_code (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build, int internal)
static isl_stat generate_non_single_valued (__isl_take isl_map *executed, struct isl_generate_domain_data *data)
static __isl_give isl_ast_graftat_each_domain (__isl_take isl_ast_graft *graft, __isl_keep isl_map *executed, __isl_keep isl_ast_build *build)
static isl_stat add_domain (__isl_take isl_map *executed, __isl_take isl_map *map, struct isl_generate_domain_data *data)
static isl_stat generate_domain (__isl_take isl_map *executed, void *user)
static __isl_give isl_ast_graft_list * call_create_leaf (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_ast_graft_list * build_ast_from_child (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * generate_inner_level (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_ast_nodebefore_each_for (__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graftafter_each_for (__isl_take isl_ast_graft *graft, __isl_keep isl_ast_build *build)
static __isl_give isl_union_mapplug_in_values (__isl_take isl_union_map *executed, __isl_keep isl_ast_build *build)
static int constraint_type (isl_constraint *c, int pos)
static int cmp_constraint (__isl_keep isl_constraint *a, __isl_keep isl_constraint *b, void *user)
static __isl_give isl_afflower_bound (__isl_keep isl_constraint *c, int pos, __isl_keep isl_ast_build *build)
static __isl_give isl_pw_affexact_bound (__isl_keep isl_set *domain, __isl_keep isl_ast_build *build, int upper)
static int reduce_list_cmp (__isl_keep isl_pw_aff *a, __isl_keep isl_pw_aff *b, void *user)
static __isl_give isl_pw_aff_list * remove_redundant_lower_bounds (__isl_take isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_pw_aff_list * lower_bounds (__isl_keep isl_constraint_list *constraints, int pos, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_pw_aff_list * upper_bounds (__isl_keep isl_constraint_list *constraints, int pos, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_exprreduce_list (enum isl_ast_expr_op_type type, __isl_keep isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_setadd_implied_guards (__isl_take isl_set *guard, int degenerate, __isl_keep isl_basic_set *bounds, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graftrefine_degenerate (__isl_take isl_ast_graft *graft, __isl_keep isl_ast_build *build, __isl_keep isl_ast_build *sub_build)
static __isl_give isl_setintersect_constraints (__isl_keep isl_constraint_list *list)
static __isl_give isl_ast_graftset_enforced_from_set (__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *lower, int pos, __isl_keep isl_set *upper)
static __isl_give isl_ast_graftset_enforced_from_list (__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *lower, __isl_keep isl_pw_aff_list *upper)
static isl_bool aff_constant_is_negative (__isl_keep isl_set *set, __isl_keep isl_aff *aff, void *user)
static isl_bool pw_aff_constant_is_negative (__isl_keep isl_pw_aff *pa, void *user)
static int list_constant_is_negative (__isl_keep isl_pw_aff_list *list)
static __isl_give isl_pw_aff_list * list_add_one (__isl_take isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graftset_for_cond_from_list (__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graftset_for_cond_from_set (__isl_take isl_ast_graft *graft, __isl_keep isl_set *set, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_exprfor_inc (__isl_keep isl_ast_build *build)
static int use_upper_bound_list (isl_ctx *ctx, int n_upper, __isl_keep isl_set *domain, int depth)
static __isl_give isl_ast_graftset_for_node_expressions (__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *lower, int use_list, __isl_keep isl_pw_aff_list *upper_list, __isl_keep isl_set *upper_set, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graftrefine_generic_bounds (__isl_take isl_ast_graft *graft, __isl_take isl_constraint_list *c_lower, __isl_take isl_constraint_list *c_upper, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static isl_stat count_constraints (__isl_take isl_constraint *c, void *user)
static __isl_give isl_ast_graftrefine_generic_split (__isl_take isl_ast_graft *graft, __isl_take isl_constraint_list *list, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graftrefine_generic (__isl_take isl_ast_graft *graft, __isl_keep isl_basic_set *bounds, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_nodecreate_for (__isl_keep isl_ast_build *build, int degenerate)
static __isl_give isl_basic_setextract_shared_enforced (__isl_keep isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_setextract_pending (__isl_keep isl_ast_build *build, __isl_keep isl_basic_set *enforced)
static __isl_give isl_ast_graftcreate_node_scaled (__isl_take isl_union_map *executed, __isl_take isl_basic_set *bounds, __isl_take isl_set *domain, __isl_take isl_ast_build *build)
static isl_stat constraint_check_scaled (__isl_take isl_constraint *c, void *user)
static isl_stat basic_map_check_scaled (__isl_take isl_basic_map *bmap, void *user)
static isl_stat map_check_scaled (__isl_take isl_map *map, void *user)
static __isl_give isl_ast_graftcreate_node (__isl_take isl_union_map *executed, __isl_take isl_basic_set *bounds, __isl_take isl_set *domain, __isl_take isl_ast_build *build)
static isl_stat collect_basic_set (__isl_take isl_basic_set *bset, void *user)
static __isl_give isl_basic_set_listisl_basic_set_list_from_set (__isl_take isl_set *set)
static __isl_give isl_ast_graft_list * add_node (__isl_take isl_ast_graft_list *list, __isl_take isl_union_map *executed, __isl_take isl_basic_set *bounds, __isl_take isl_ast_build *build)
static isl_bool domain_follows_at_depth (__isl_keep isl_basic_set *i, __isl_keep isl_basic_set *j, void *user)
static __isl_give isl_basic_set_listadd_split_on (__isl_take isl_basic_set_list *list, __isl_take isl_basic_set *bset, __isl_keep isl_basic_map *gt)
static __isl_give isl_ast_graft_list * generate_sorted_domains (__isl_keep isl_basic_set_list *domain_list, __isl_keep isl_union_map *executed, __isl_keep isl_ast_build *build)
static isl_stat add_nodes (__isl_take isl_basic_set_list *scc, void *user)
static isl_bool shared_outer (__isl_keep isl_basic_set *i, __isl_keep isl_basic_set *j, void *user)
static isl_stat generate_sorted_domains_wrap (__isl_take isl_basic_set_list *scc, void *user)
static __isl_give isl_ast_graft_list * generate_parallel_domains (__isl_keep isl_basic_set_list *domain_list, __isl_keep isl_union_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_setimplicit_bounds (__isl_take isl_map *map, __isl_keep isl_ast_build *build)
static __isl_give isl_setexplicit_bounds (__isl_take isl_map *map, __isl_keep isl_ast_build *build)
static isl_stat separate_domain (__isl_take isl_map *map, void *user)
static __isl_give isl_setseparate_schedule_domains (__isl_take isl_space *space, __isl_take isl_union_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_constraintat_offset (int depth, __isl_keep isl_aff *aff, int offset)
static isl_stat update_n_div (__isl_take isl_set *set, __isl_take isl_multi_aff *ma, void *user)
static int get_expanded_n_div (struct isl_find_unroll_data *data, __isl_keep isl_aff *lower)
static int is_better_lower_bound (struct isl_find_unroll_data *data, __isl_keep isl_aff *lower, __isl_keep isl_val *n)
static isl_stat update_unrolling_lower_bound (struct isl_find_unroll_data *data, __isl_keep isl_constraint *c)
static isl_stat constraint_find_unroll (__isl_take isl_constraint *c, void *user)
static __isl_give isl_afffind_unroll_lower_bound (__isl_keep isl_ast_build *build, __isl_keep isl_set *domain, int depth, __isl_keep isl_basic_map *expansion, int *n)
static int foreach_iteration (__isl_take isl_set *domain, __isl_keep isl_ast_build *build, int(*init)(int n, void *user), int(*fn)(__isl_take isl_basic_set *bset, void *user), void *user)
static int do_unroll_iteration (__isl_take isl_basic_set *bset, void *user)
static __isl_give isl_setdo_unroll (struct isl_codegen_domains *domains, __isl_take isl_set *domain, __isl_take isl_set *class_domain)
static __isl_give isl_setcompute_unroll_domains (struct isl_codegen_domains *domains, __isl_take isl_set *class_domain)
static __isl_give isl_setcompute_atomic_domain (struct isl_codegen_domains *domains, __isl_take isl_set *class_domain)
static int compute_separate_domain (struct isl_codegen_domains *domains, __isl_keep isl_set *class_domain)
static isl_stat compute_partial_domains (struct isl_codegen_domains *domains, __isl_take isl_set *class_domain)
static isl_stat compute_class_domains (__isl_take isl_point *pnt, void *user)
static void compute_domains_init_options (isl_set *option[4], __isl_keep isl_ast_build *build)
static __isl_give isl_basic_set_listcompute_domains (__isl_keep isl_union_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_flat (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_separate (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static int init_unroll_tree (int n, void *user)
static int do_unroll_tree_iteration (__isl_take isl_basic_set *bset, void *user)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_unroll (__isl_take isl_union_map *executed, __isl_take isl_set *domain, __isl_take isl_ast_build *build)
static isl_bool has_pure_outer_disjunction (__isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_base (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build, int isolated)
static __isl_give isl_setextract_disjunction (__isl_take isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * list_add_guard (__isl_take isl_ast_graft_list *list, __isl_keep isl_set *guard, __isl_keep isl_ast_build *build, __isl_keep isl_ast_build *sub_build)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_part (__isl_keep isl_union_map *executed, __isl_take isl_set *domain, __isl_keep isl_ast_build *build, int isolated)
static __isl_give isl_ast_graft_list * generate_shifted_component_parts (__isl_take isl_union_map *executed, __isl_take isl_set *before, __isl_take isl_set *isolated, __isl_take isl_set *after, __isl_take isl_set *other, __isl_take isl_ast_build *build)
static isl_bool only_intersects_first (__isl_keep isl_set *set, __isl_keep isl_set *first, __isl_keep isl_set *second)
static __isl_give isl_ast_graft_list * generate_shifted_component_only_after (__isl_take isl_union_map *executed, __isl_take isl_set *isolated, __isl_take isl_set *after, __isl_take isl_ast_build *build, __isl_take isl_set *dead1, __isl_take isl_set *dead2)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_union_mapconstruct_component_executed (struct isl_set_map_pair *domain, int *order, int n)
static __isl_give isl_ast_graft_list * generate_shifted_component_from_list (struct isl_set_map_pair *domain, int *order, int n, __isl_take isl_ast_build *build)
static int dim_is_fixed (__isl_keep isl_set *set, int pos)
static int at_most_one_non_fixed (struct isl_set_map_pair *domain, int *order, int n, int depth)
static int eliminate_non_fixed (struct isl_set_map_pair *domain, int *order, int n, int depth, __isl_keep isl_ast_build *build)
static int first_offset (struct isl_set_map_pair *domain, int *order, int n, __isl_keep isl_ast_build *build)
static __isl_give isl_union_mapconstruct_shifted_executed (struct isl_set_map_pair *domain, int *order, int n, __isl_keep isl_val *stride, __isl_keep isl_multi_val *offset, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shift_component (struct isl_set_map_pair *domain, int *order, int n, __isl_keep isl_val *stride, __isl_keep isl_multi_val *offset, __isl_take isl_ast_build *build)
static int has_anchored_subtree (__isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_component (struct isl_set_map_pair *domain, int *order, int n, __isl_take isl_ast_build *build)
static isl_stat extract_domain (__isl_take isl_map *map, void *user)
static isl_bool after_in_tree (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_child (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_band (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_context (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_expansion (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_extension (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_filter (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_set (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_union_setchild_filter (__isl_keep isl_schedule_node *node, int i)
static isl_bool after_in_sequence (__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool after_in_subtree (__isl_keep isl_ast_build *build, __isl_keep isl_map *map1, __isl_keep isl_map *map2)
static isl_bool any_scheduled_after (int i, int j, void *user)
static __isl_give isl_ast_graft_list * generate_components (__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_union_mapinternal_executed (__isl_take isl_union_map *executed, __isl_keep isl_space *space, __isl_keep isl_ast_build *build)
static isl_stat generate_code_in_space (struct isl_generate_code_data *data, __isl_take isl_set *set, __isl_take isl_space *space)
static isl_stat generate_code_set (__isl_take isl_set *set, void *user)
__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)
static __isl_give isl_ast_graft_list * build_ast_from_leaf (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static isl_stat check_band_schedule_total_on_instances (__isl_keep isl_multi_union_pw_aff *partial, __isl_keep isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_band (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * hoist_out_of_context (__isl_take isl_ast_graft_list *list, __isl_keep isl_ast_build *build, __isl_keep isl_ast_build *sub_build)
static __isl_give isl_ast_graft_list * build_ast_from_context (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_expansion (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_extension (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_filter (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_guard (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static isl_stat before_each_mark (__isl_keep isl_id *mark, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graftafter_each_mark (__isl_take isl_ast_graft *graft, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * build_ast_from_mark (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_schedule_node (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_sequence (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_nodebuild_ast_from_domain (__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node)
__isl_give isl_ast_nodeisl_ast_build_node_from_schedule (__isl_keep isl_ast_build *build, __isl_take isl_schedule *schedule)

Function Documentation

◆ add_domain()

◆ add_implied_guards()

◆ add_node()

◆ add_nodes()

◆ add_split_on()

◆ aff_constant_is_negative()

isl_bool aff_constant_is_negative ( __isl_keep isl_set * set,
__isl_keep isl_aff * aff,
void * user )
static

◆ after_each_for()

◆ after_each_mark()

◆ after_in_band()

◆ after_in_child()

◆ after_in_context()

◆ after_in_expansion()

◆ after_in_extension()

isl_bool after_in_extension ( __isl_keep isl_union_map * umap,
__isl_keep isl_schedule_node * node )
static

Definition at line 4443 of file isl_ast_codegen.c.

References __isl_keep, and isl_bool_true.

Referenced by after_in_tree().

◆ after_in_filter()

◆ after_in_sequence()

◆ after_in_set()

◆ after_in_subtree()

◆ after_in_tree()

◆ any_scheduled_after()

◆ at_each_domain()

◆ at_most_one_non_fixed()

int at_most_one_non_fixed ( struct isl_set_map_pair * domain,
int * order,
int n,
int depth )
static

Definition at line 3771 of file isl_ast_codegen.c.

References dim_is_fixed(), domain, f, n, and set.

Referenced by generate_component().

◆ at_offset()

◆ basic_map_check_scaled()

isl_stat basic_map_check_scaled ( __isl_take isl_basic_map * bmap,
void * user )
static

◆ before_each_for()

◆ before_each_mark()

◆ build_ast_from_band()

◆ build_ast_from_child()

◆ build_ast_from_context()

◆ build_ast_from_domain()

◆ build_ast_from_expansion()

◆ build_ast_from_extension()

◆ 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()

◆ check_band_schedule_total_on_instances()

◆ child_filter()

◆ cmp_constraint()

int cmp_constraint ( __isl_keep isl_constraint * a,
__isl_keep isl_constraint * b,
void * user )
static

Definition at line 412 of file isl_ast_codegen.c.

References __isl_keep, a(), b(), constraint_type(), t1, t2, and user.

◆ collect_basic_set()

isl_stat collect_basic_set ( __isl_take isl_basic_set * bset,
void * user )
static

Definition at line 1768 of file isl_ast_codegen.c.

References __isl_take, isl_basic_set, isl_basic_set_list, isl_stat_ok, and user.

Referenced by isl_basic_set_list_from_set().

◆ compute_atomic_domain()

◆ compute_class_domains()

◆ compute_domains()

◆ compute_domains_init_options()

◆ compute_partial_domains()

◆ compute_separate_domain()

◆ compute_unroll_domains()

◆ constraint_check_scaled()

◆ constraint_find_unroll()

isl_stat constraint_find_unroll ( __isl_take isl_constraint * c,
void * user )
static

◆ constraint_type()

int constraint_type ( isl_constraint * c,
int pos )
static

◆ construct_component_executed()

__isl_give isl_union_map * construct_component_executed ( struct isl_set_map_pair * domain,
int * order,
int n )
static

◆ construct_shifted_executed()

◆ count_constraints()

◆ create_for()

◆ create_node()

◆ create_node_scaled()

◆ dim_is_fixed()

◆ do_unroll()

◆ do_unroll_iteration()

◆ do_unroll_tree_iteration()

◆ domain_follows_at_depth()

◆ eliminate_non_fixed()

int eliminate_non_fixed ( struct isl_set_map_pair * domain,
int * order,
int n,
int depth,
__isl_keep isl_ast_build * build )
static

Definition at line 3802 of file isl_ast_codegen.c.

References __isl_keep, dim_is_fixed(), domain, f, isl_ast_build_eliminate_inner(), n, and set.

Referenced by generate_component().

◆ exact_bound()

◆ explicit_bounds()

◆ extract_disjunction()

◆ extract_domain()

isl_stat extract_domain ( __isl_take isl_map * map,
void * user )
static

Definition at line 4282 of file isl_ast_codegen.c.

References __isl_take, isl_map_copy(), isl_map_domain(), isl_stat_ok, map, and user.

Referenced by generate_components(), and SF().

◆ extract_pending()

◆ extract_shared_enforced()

◆ find_unroll_lower_bound()

◆ first_offset()

◆ for_inc()

◆ foreach_iteration()

◆ generate_code()

◆ generate_code_in_space()

◆ generate_code_set()

◆ generate_component()

◆ generate_components()

◆ generate_domain()

◆ generate_inner_level()

◆ generate_next_level()

◆ generate_non_single_valued()

◆ generate_parallel_domains()

◆ generate_shift_component()

◆ generate_shifted_component()

◆ generate_shifted_component_flat()

◆ generate_shifted_component_from_list()

__isl_give isl_ast_graft_list * generate_shifted_component_from_list ( struct isl_set_map_pair * domain,
int * order,
int n,
__isl_take isl_ast_build * build )
static

◆ generate_shifted_component_only_after()

◆ 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()

◆ generate_sorted_domains()

◆ generate_sorted_domains_wrap()

◆ get_expanded_n_div()

◆ has_anchored_subtree()

int has_anchored_subtree ( __isl_keep isl_ast_build * build)
static

◆ has_pure_outer_disjunction()

◆ hoist_out_of_context()

◆ implicit_bounds()

__isl_give isl_set * implicit_bounds ( __isl_take isl_map * map,
__isl_keep isl_ast_build * build )
static

◆ init_unroll_tree()

int init_unroll_tree ( int n,
void * user )
static

◆ internal_executed()

◆ intersect_constraints()

◆ is_better_lower_bound()

◆ isl_ast_build_ast_from_schedule()

◆ isl_ast_build_node_from_schedule()

◆ isl_ast_build_node_from_schedule_map()

◆ isl_basic_set_list_from_set()

◆ isl_set_coalesce_preserve()

◆ list_add_guard()

◆ list_add_one()

◆ list_constant_is_negative()

int list_constant_is_negative ( __isl_keep isl_pw_aff_list * list)
static

◆ lower_bound()

◆ lower_bounds()

◆ map_check_scaled()

isl_stat map_check_scaled ( __isl_take isl_map * map,
void * user )
static

◆ only_intersects_first()

isl_bool only_intersects_first ( __isl_keep isl_set * set,
__isl_keep isl_set * first,
__isl_keep isl_set * second )
static

◆ plug_in_values()

◆ pw_aff_constant_is_negative()

isl_bool pw_aff_constant_is_negative ( __isl_keep isl_pw_aff * pa,
void * user )
static

◆ reduce_list()

◆ reduce_list_cmp()

int reduce_list_cmp ( __isl_keep isl_pw_aff * a,
__isl_keep isl_pw_aff * b,
void * user )
static

Definition at line 510 of file isl_ast_codegen.c.

References __isl_keep, a(), b(), isl_pw_aff_plain_cmp(), and user.

Referenced by reduce_list(), and remove_redundant_lower_bounds().

◆ refine_degenerate()

◆ refine_generic()

◆ refine_generic_bounds()

◆ refine_generic_split()

◆ remove_redundant_lower_bounds()

◆ separate_domain()

◆ separate_schedule_domains()

◆ set_enforced_from_list()

__isl_give isl_ast_graft * set_enforced_from_list ( __isl_take isl_ast_graft * graft,
__isl_keep isl_pw_aff_list * lower,
__isl_keep isl_pw_aff_list * upper )
static

◆ set_enforced_from_set()

◆ set_for_cond_from_list()

◆ set_for_cond_from_set()

◆ set_for_node_expressions()

◆ shared_outer()

◆ update_n_div()

isl_stat update_n_div ( __isl_take isl_set * set,
__isl_take isl_multi_aff * ma,
void * user )
static

◆ update_unrolling_lower_bound()

◆ upper_bounds()

◆ use_upper_bound_list()

int use_upper_bound_list ( isl_ctx * ctx,
int n_upper,
__isl_keep isl_set * domain,
int depth )
static