isl_basic_set_opt: avoid invalid access on error path
[platform/upstream/isl.git] / isl_local_space_private.h
index 76d74b5..d54c3e3 100644 (file)
@@ -1,7 +1,6 @@
 #ifndef ISL_LOCAL_SPACE_PRIVATE_H
 #define ISL_LOCAL_SPACE_PRIVATE_H
 
-#include <isl/div.h>
 #include <isl/mat.h>
 #include <isl/set.h>
 #include <isl/local_space.h>
@@ -9,16 +8,21 @@
 struct isl_local_space {
        int ref;
 
-       isl_dim *dim;
+       isl_space *dim;
        isl_mat *div;
 };
 
-__isl_give isl_local_space *isl_local_space_alloc(__isl_take isl_dim *dim,
+__isl_give isl_local_space *isl_local_space_alloc(__isl_take isl_space *dim,
        unsigned n_div);
+__isl_give isl_local_space *isl_local_space_alloc_div(__isl_take isl_space *dim,
+       __isl_take isl_mat *div);
 
+__isl_give isl_local_space *isl_local_space_swap_div(
+       __isl_take isl_local_space *ls, int a, int b);
 __isl_give isl_local_space *isl_local_space_add_div(
        __isl_take isl_local_space *ls, __isl_take isl_vec *div);
 
+int isl_mat_cmp_div(__isl_keep isl_mat *div, int i, int j);
 __isl_give isl_mat *isl_merge_divs(__isl_keep isl_mat *div1,
        __isl_keep isl_mat *div2, int *exp1, int *exp2);
 
@@ -35,4 +39,28 @@ __isl_give isl_local_space *isl_local_space_substitute_equalities(
 int isl_local_space_is_named_or_nested(__isl_keep isl_local_space *ls,
        enum isl_dim_type type);
 
+__isl_give isl_local_space *isl_local_space_reset_space(
+       __isl_take isl_local_space *ls, __isl_take isl_space *dim);
+__isl_give isl_local_space *isl_local_space_realign(
+       __isl_take isl_local_space *ls, __isl_take isl_reordering *r);
+
+int isl_local_space_is_div_constraint(__isl_keep isl_local_space *ls,
+       isl_int *constraint, unsigned div);
+
+int *isl_local_space_get_active(__isl_keep isl_local_space *ls, isl_int *l);
+
+__isl_give isl_local_space *isl_local_space_substitute_seq(
+       __isl_take isl_local_space *ls,
+       enum isl_dim_type type, unsigned pos, isl_int *subs, int subs_len,
+       int first, int n);
+__isl_give isl_local_space *isl_local_space_substitute(
+       __isl_take isl_local_space *ls,
+       enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs);
+
+__isl_give isl_local_space *isl_local_space_lift(
+       __isl_take isl_local_space *ls);
+
+__isl_give isl_local_space *isl_local_space_preimage_multi_aff(
+       __isl_take isl_local_space *ls, __isl_take isl_multi_aff *ma);
+
 #endif