Polly 19.0.0git
Classes | Functions
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()

static isl_stat add_domain ( __isl_take isl_map executed,
__isl_take isl_map map,
struct isl_generate_domain_data data 
)
static

◆ add_implied_guards()

static __isl_give isl_set * add_implied_guards ( __isl_take isl_set guard,
int  degenerate,
__isl_keep isl_basic_set bounds,
__isl_keep isl_ast_build build 
)
static

◆ add_node()

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

◆ add_nodes()

static isl_stat add_nodes ( __isl_take isl_basic_set_list scc,
void *  user 
)
static

◆ add_split_on()

static __isl_give isl_basic_set_list * add_split_on ( __isl_take isl_basic_set_list list,
__isl_take isl_basic_set bset,
__isl_keep isl_basic_map gt 
)
static

◆ aff_constant_is_negative()

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

◆ after_each_for()

static __isl_give isl_ast_graft * after_each_for ( __isl_take isl_ast_graft graft,
__isl_keep isl_ast_build build 
)
static

◆ after_each_mark()

static __isl_give isl_ast_graft * after_each_mark ( __isl_take isl_ast_graft graft,
__isl_keep isl_ast_build build 
)
static

◆ after_in_band()

static isl_bool after_in_band ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ after_in_child()

static isl_bool after_in_child ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ after_in_context()

static isl_bool after_in_context ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ after_in_expansion()

static isl_bool after_in_expansion ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ after_in_extension()

static 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_bool_true.

Referenced by after_in_tree().

◆ after_in_filter()

static isl_bool after_in_filter ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ after_in_sequence()

static isl_bool after_in_sequence ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ after_in_set()

static isl_bool after_in_set ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ after_in_subtree()

static isl_bool after_in_subtree ( __isl_keep isl_ast_build build,
__isl_keep isl_map map1,
__isl_keep isl_map map2 
)
static

◆ after_in_tree()

static isl_bool after_in_tree ( __isl_keep isl_union_map umap,
__isl_keep isl_schedule_node node 
)
static

◆ any_scheduled_after()

static isl_bool any_scheduled_after ( int  i,
int  j,
void *  user 
)
static

◆ at_each_domain()

static __isl_give isl_ast_graft * at_each_domain ( __isl_take isl_ast_graft graft,
__isl_keep isl_map executed,
__isl_keep isl_ast_build build 
)
static

◆ at_most_one_non_fixed()

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

static __isl_give isl_constraint * at_offset ( int  depth,
__isl_keep isl_aff aff,
int  offset 
)
static

◆ basic_map_check_scaled()

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

◆ before_each_for()

static __isl_give isl_ast_node * before_each_for ( __isl_take isl_ast_node node,
__isl_keep isl_ast_build build 
)
static

◆ before_each_mark()

static isl_stat before_each_mark ( __isl_keep isl_id mark,
__isl_keep isl_ast_build build 
)
static

◆ build_ast_from_band()

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

◆ build_ast_from_child()

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

◆ build_ast_from_context()

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

◆ build_ast_from_domain()

static __isl_give isl_ast_node * build_ast_from_domain ( __isl_take isl_ast_build build,
__isl_take isl_schedule_node node 
)
static

◆ build_ast_from_expansion()

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

◆ build_ast_from_extension()

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

◆ build_ast_from_filter()

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

◆ build_ast_from_guard()

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

◆ build_ast_from_leaf()

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

◆ build_ast_from_mark()

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

◆ build_ast_from_schedule_node()

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

◆ build_ast_from_sequence()

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

◆ call_create_leaf()

static __isl_give isl_ast_graft_list * call_create_leaf ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build 
)
static

◆ check_band_schedule_total_on_instances()

static isl_stat check_band_schedule_total_on_instances ( __isl_keep isl_multi_union_pw_aff partial,
__isl_keep isl_union_map executed 
)
static

◆ child_filter()

static __isl_give isl_union_set * child_filter ( __isl_keep isl_schedule_node node,
int  i 
)
static

◆ cmp_constraint()

static 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 a(), b(), constraint_type(), t1, t2, and user.

Referenced by refine_generic_split().

◆ collect_basic_set()

static 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_basic_set_list, isl_stat_ok, and user.

Referenced by isl_basic_set_list_from_set().

◆ compute_atomic_domain()

static __isl_give isl_set * compute_atomic_domain ( struct isl_codegen_domains domains,
__isl_take isl_set class_domain 
)
static

◆ compute_class_domains()

static isl_stat compute_class_domains ( __isl_take isl_point pnt,
void *  user 
)
static

◆ compute_domains()

static __isl_give isl_basic_set_list * compute_domains ( __isl_keep isl_union_map executed,
__isl_keep isl_ast_build build 
)
static

◆ compute_domains_init_options()

static void compute_domains_init_options ( isl_set option[4],
__isl_keep isl_ast_build build 
)
static

◆ compute_partial_domains()

static isl_stat compute_partial_domains ( struct isl_codegen_domains domains,
__isl_take isl_set class_domain 
)
static

◆ compute_separate_domain()

static int compute_separate_domain ( struct isl_codegen_domains domains,
__isl_keep isl_set class_domain 
)
static

◆ compute_unroll_domains()

static __isl_give isl_set * compute_unroll_domains ( struct isl_codegen_domains domains,
__isl_take isl_set class_domain 
)
static

◆ constraint_check_scaled()

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

◆ constraint_find_unroll()

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

Definition at line 2538 of file isl_ast_codegen.c.

References isl_constraint_free(), update_unrolling_lower_bound(), and user.

Referenced by find_unroll_lower_bound().

◆ constraint_type()

static int constraint_type ( isl_constraint c,
int  pos 
)
static

◆ construct_component_executed()

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

◆ construct_shifted_executed()

static __isl_give isl_union_map * construct_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

◆ count_constraints()

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

◆ create_for()

static __isl_give isl_ast_node * create_for ( __isl_keep isl_ast_build build,
int  degenerate 
)
static

◆ create_node()

static __isl_give isl_ast_graft * create_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

◆ create_node_scaled()

static __isl_give isl_ast_graft * create_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

◆ dim_is_fixed()

static int dim_is_fixed ( __isl_keep isl_set set,
int  pos 
)
static

◆ do_unroll()

static __isl_give isl_set * do_unroll ( struct isl_codegen_domains domains,
__isl_take isl_set domain,
__isl_take isl_set class_domain 
)
static

◆ do_unroll_iteration()

static int do_unroll_iteration ( __isl_take isl_basic_set bset,
void *  user 
)
static

◆ do_unroll_tree_iteration()

static int do_unroll_tree_iteration ( __isl_take isl_basic_set bset,
void *  user 
)
static

◆ domain_follows_at_depth()

static isl_bool domain_follows_at_depth ( __isl_keep isl_basic_set i,
__isl_keep isl_basic_set j,
void *  user 
)
static

◆ eliminate_non_fixed()

static 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 dim_is_fixed(), domain, f, isl_ast_build_eliminate_inner(), n, and set.

Referenced by generate_component().

◆ exact_bound()

static __isl_give isl_pw_aff * exact_bound ( __isl_keep isl_set domain,
__isl_keep isl_ast_build build,
int  upper 
)
static

◆ explicit_bounds()

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

◆ extract_disjunction()

static __isl_give isl_set * extract_disjunction ( __isl_take isl_set domain,
__isl_keep isl_ast_build build 
)
static

◆ extract_domain()

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

Definition at line 4282 of file isl_ast_codegen.c.

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

Referenced by generate_components(), and SF().

◆ extract_pending()

static __isl_give isl_set * extract_pending ( __isl_keep isl_ast_build build,
__isl_keep isl_basic_set enforced 
)
static

◆ extract_shared_enforced()

static __isl_give isl_basic_set * extract_shared_enforced ( __isl_keep isl_ast_graft_list *  list,
__isl_keep isl_ast_build build 
)
static

◆ find_unroll_lower_bound()

static __isl_give isl_aff * find_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

◆ first_offset()

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

◆ for_inc()

static __isl_give isl_ast_expr * for_inc ( __isl_keep isl_ast_build build)
static

◆ foreach_iteration()

static int foreach_iteration ( __isl_take isl_set domain,
__isl_keep isl_ast_build build,
int(*)(int n, void *user init,
int(*)(__isl_take isl_basic_set *bset, void *user fn,
void *  user 
)
static

◆ generate_code()

static __isl_give isl_ast_graft_list * generate_code ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build,
int  internal 
)
static

◆ generate_code_in_space()

static isl_stat generate_code_in_space ( struct isl_generate_code_data data,
__isl_take isl_set set,
__isl_take isl_space space 
)
static

◆ generate_code_set()

static isl_stat generate_code_set ( __isl_take isl_set set,
void *  user 
)
static

◆ generate_component()

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

◆ generate_components()

static __isl_give isl_ast_graft_list * generate_components ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build 
)
static

◆ generate_domain()

static isl_stat generate_domain ( __isl_take isl_map executed,
void *  user 
)
static

◆ generate_inner_level()

static __isl_give isl_ast_graft_list * generate_inner_level ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build 
)
static

◆ generate_next_level()

static __isl_give isl_ast_graft_list * generate_next_level ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build 
)
static

◆ generate_non_single_valued()

static isl_stat generate_non_single_valued ( __isl_take isl_map executed,
struct isl_generate_domain_data data 
)
static

◆ generate_parallel_domains()

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

◆ generate_shift_component()

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

◆ generate_shifted_component()

static __isl_give isl_ast_graft_list * generate_shifted_component ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build 
)
static

◆ generate_shifted_component_flat()

static __isl_give isl_ast_graft_list * generate_shifted_component_flat ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build 
)
static

◆ generate_shifted_component_from_list()

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

◆ generate_shifted_component_only_after()

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

◆ generate_shifted_component_parts()

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

◆ generate_shifted_component_tree()

static __isl_give isl_ast_graft_list * generate_shifted_component_tree ( __isl_take isl_union_map executed,
__isl_take isl_ast_build build 
)
static

◆ generate_shifted_component_tree_base()

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

◆ generate_shifted_component_tree_part()

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

◆ generate_shifted_component_tree_separate()

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

◆ generate_shifted_component_tree_unroll()

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

◆ generate_sorted_domains()

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

◆ generate_sorted_domains_wrap()

static isl_stat generate_sorted_domains_wrap ( __isl_take isl_basic_set_list scc,
void *  user 
)
static

◆ get_expanded_n_div()

static int get_expanded_n_div ( struct isl_find_unroll_data data,
__isl_keep isl_aff lower 
)
static

◆ has_anchored_subtree()

static int has_anchored_subtree ( __isl_keep isl_ast_build build)
static

◆ has_pure_outer_disjunction()

static isl_bool has_pure_outer_disjunction ( __isl_keep isl_set domain,
__isl_keep isl_ast_build build 
)
static

◆ hoist_out_of_context()

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

◆ implicit_bounds()

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

Definition at line 2239 of file isl_ast_codegen.c.

References domain, isl_ast_build_eliminate(), isl_map_domain(), and map.

Referenced by separate_domain().

◆ init_unroll_tree()

static int init_unroll_tree ( int  n,
void *  user 
)
static

◆ internal_executed()

static __isl_give isl_union_map * internal_executed ( __isl_take isl_union_map executed,
__isl_keep isl_space space,
__isl_keep isl_ast_build build 
)
static

◆ intersect_constraints()

static __isl_give isl_set * intersect_constraints ( __isl_keep isl_constraint_list *  list)
static

◆ is_better_lower_bound()

static int is_better_lower_bound ( struct isl_find_unroll_data data,
__isl_keep isl_aff lower,
__isl_keep isl_val n 
)
static

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

__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_give isl_ast_node * isl_ast_build_node_from_schedule_map ( __isl_keep isl_ast_build build,
__isl_take isl_union_map schedule 
)

◆ isl_basic_set_list_from_set()

static __isl_give isl_basic_set_list * isl_basic_set_list_from_set ( __isl_take isl_set set)
static

◆ isl_set_coalesce_preserve()

static __isl_give isl_set * isl_set_coalesce_preserve ( __isl_take isl_set set)
static

◆ list_add_guard()

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

◆ list_add_one()

static __isl_give isl_pw_aff_list * list_add_one ( __isl_take isl_pw_aff_list *  list,
__isl_keep isl_ast_build build 
)
static

◆ list_constant_is_negative()

static int list_constant_is_negative ( __isl_keep isl_pw_aff_list *  list)
static

◆ lower_bound()

static __isl_give isl_aff * lower_bound ( __isl_keep isl_constraint c,
int  pos,
__isl_keep isl_ast_build build 
)
static

◆ lower_bounds()

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

◆ map_check_scaled()

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

Definition at line 1641 of file isl_ast_codegen.c.

References basic_map_check_scaled(), isl_map_foreach_basic_map(), isl_map_free(), map, and user.

Referenced by create_node().

◆ only_intersects_first()

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

◆ plug_in_values()

static __isl_give isl_union_map * plug_in_values ( __isl_take isl_union_map executed,
__isl_keep isl_ast_build build 
)
static

◆ pw_aff_constant_is_negative()

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

Definition at line 945 of file isl_ast_codegen.c.

References aff_constant_is_negative(), and isl_pw_aff_every_piece().

Referenced by list_constant_is_negative().

◆ reduce_list()

static __isl_give isl_ast_expr * reduce_list ( enum isl_ast_expr_op_type  type,
__isl_keep isl_pw_aff_list *  list,
__isl_keep isl_ast_build build 
)
static

◆ reduce_list_cmp()

static 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 a(), b(), and isl_pw_aff_plain_cmp().

Referenced by reduce_list(), and remove_redundant_lower_bounds().

◆ refine_degenerate()

static __isl_give isl_ast_graft * refine_degenerate ( __isl_take isl_ast_graft graft,
__isl_keep isl_ast_build build,
__isl_keep isl_ast_build sub_build 
)
static

◆ refine_generic()

static __isl_give isl_ast_graft * refine_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

◆ refine_generic_bounds()

static __isl_give isl_ast_graft * refine_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

◆ refine_generic_split()

static __isl_give isl_ast_graft * refine_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

◆ remove_redundant_lower_bounds()

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

◆ separate_domain()

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

◆ separate_schedule_domains()

static __isl_give isl_set * separate_schedule_domains ( __isl_take isl_space space,
__isl_take isl_union_map executed,
__isl_keep isl_ast_build build 
)
static

◆ set_enforced_from_list()

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

static __isl_give isl_ast_graft * set_enforced_from_set ( __isl_take isl_ast_graft graft,
__isl_keep isl_pw_aff_list *  lower,
int  pos,
__isl_keep isl_set upper 
)
static

◆ set_for_cond_from_list()

static __isl_give isl_ast_graft * set_for_cond_from_list ( __isl_take isl_ast_graft graft,
__isl_keep isl_pw_aff_list *  list,
__isl_keep isl_ast_build build 
)
static

◆ set_for_cond_from_set()

static __isl_give isl_ast_graft * set_for_cond_from_set ( __isl_take isl_ast_graft graft,
__isl_keep isl_set set,
__isl_keep isl_ast_build build 
)
static

◆ set_for_node_expressions()

static __isl_give isl_ast_graft * set_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

◆ shared_outer()

static isl_bool shared_outer ( __isl_keep isl_basic_set i,
__isl_keep isl_basic_set j,
void *  user 
)
static

◆ update_n_div()

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

◆ update_unrolling_lower_bound()

static isl_stat update_unrolling_lower_bound ( struct isl_find_unroll_data data,
__isl_keep isl_constraint c 
)
static

◆ upper_bounds()

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

◆ use_upper_bound_list()

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