103 lines · c
1#ifndef ISL_LOCAL_SPACE_PRIVATE_H2#define ISL_LOCAL_SPACE_PRIVATE_H3 4#include <isl/mat.h>5#include <isl/set.h>6#include <isl/local_space.h>7 8struct isl_local_space {9 int ref;10 11 isl_space *dim;12 isl_mat *div;13};14 15isl_stat isl_local_space_check_range(__isl_keep isl_local_space *ls,16 enum isl_dim_type type, unsigned first, unsigned n);17 18uint32_t isl_local_space_get_hash(__isl_keep isl_local_space *ls);19 20__isl_give isl_local_space *isl_local_space_alloc(__isl_take isl_space *space,21 unsigned n_div);22__isl_give isl_local_space *isl_local_space_alloc_div(23 __isl_take isl_space *space, __isl_take isl_mat *div);24 25__isl_keep isl_space *isl_local_space_peek_space(26 __isl_keep isl_local_space *ls);27 28__isl_give isl_local_space *isl_local_space_swap_div(29 __isl_take isl_local_space *ls, int a, int b);30__isl_give isl_local_space *isl_local_space_add_div(31 __isl_take isl_local_space *ls, __isl_take isl_vec *div);32 33int isl_mat_cmp_div(__isl_keep isl_mat *div, int i, int j);34__isl_give isl_mat *isl_merge_divs(__isl_keep isl_mat *div1,35 __isl_keep isl_mat *div2, int *exp1, int *exp2);36 37isl_size isl_local_space_var_offset(__isl_keep isl_local_space *ls,38 enum isl_dim_type type);39unsigned isl_local_space_offset(__isl_keep isl_local_space *ls,40 enum isl_dim_type type);41 42__isl_give isl_local_space *isl_local_space_replace_divs(43 __isl_take isl_local_space *ls, __isl_take isl_mat *div);44isl_bool isl_local_space_div_is_marked_unknown(__isl_keep isl_local_space *ls,45 int div);46isl_bool isl_local_space_div_is_known(__isl_keep isl_local_space *ls, int div);47isl_bool isl_local_space_divs_known(__isl_keep isl_local_space *ls);48 49__isl_give isl_basic_set *isl_local_space_lift_basic_set(50 __isl_take isl_local_space *ls, __isl_take isl_basic_set *bset);51__isl_give isl_set *isl_local_space_lift_set(__isl_take isl_local_space *ls,52 __isl_take isl_set *set);53__isl_give isl_local_space *isl_local_space_substitute_equalities(54 __isl_take isl_local_space *ls, __isl_take isl_basic_set *eq);55 56isl_bool isl_local_space_is_named_or_nested(__isl_keep isl_local_space *ls,57 enum isl_dim_type type);58 59isl_bool isl_local_space_has_equal_space(__isl_keep isl_local_space *ls1,60 __isl_keep isl_local_space *ls2);61 62__isl_give isl_local_space *isl_local_space_reset_space(63 __isl_take isl_local_space *ls, __isl_take isl_space *space);64__isl_give isl_local_space *isl_local_space_realign(65 __isl_take isl_local_space *ls, __isl_take isl_reordering *r);66 67isl_bool isl_local_space_is_div_constraint(__isl_keep isl_local_space *ls,68 isl_int *constraint, unsigned div);69isl_bool isl_local_space_is_div_equality(__isl_keep isl_local_space *ls,70 isl_int *constraint, unsigned div);71 72int *isl_local_space_get_active(__isl_keep isl_local_space *ls, isl_int *l);73 74__isl_give isl_local_space *isl_local_space_substitute_seq(75 __isl_take isl_local_space *ls,76 enum isl_dim_type type, unsigned pos, isl_int *subs, int subs_len,77 int first, int n);78__isl_give isl_local_space *isl_local_space_substitute(79 __isl_take isl_local_space *ls,80 enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs);81 82__isl_give isl_local_space *isl_local_space_lift(83 __isl_take isl_local_space *ls);84 85__isl_give isl_local_space *isl_local_space_preimage_multi_aff(86 __isl_take isl_local_space *ls, __isl_take isl_multi_aff *ma);87 88__isl_give isl_local_space *isl_local_space_move_dims(89 __isl_take isl_local_space *ls,90 enum isl_dim_type dst_type, unsigned dst_pos,91 enum isl_dim_type src_type, unsigned src_pos, unsigned n);92 93int isl_local_space_cmp(__isl_keep isl_local_space *ls1,94 __isl_keep isl_local_space *ls2);95 96__isl_give isl_point *isl_local_space_lift_point(__isl_take isl_local_space *ls,97 __isl_take isl_point *pnt);98 99isl_bool isl_local_space_has_space(__isl_keep isl_local_space *ls,100 __isl_keep isl_space *space);101 102#endif103