Expose isl_term_copy
[platform/upstream/isl.git] / isl_coalesce.c
index f39a5e1..8cb942e 100644 (file)
@@ -11,7 +11,7 @@
  */
 
 #include "isl_map_private.h"
-#include "isl_seq.h"
+#include <isl/seq.h>
 #include "isl_tab.h"
 #include <isl_mat_private.h>
 
@@ -916,8 +916,7 @@ static int check_adj_eq(struct isl_map *map, int i, int j,
        if (any(ineq_i, map->p[i]->n_ineq, STATUS_CUT))
                /* ADJ EQ CUT */
                return 0;
-       if (count(eq_j, 2 * map->p[j]->n_eq, STATUS_ADJ_INEQ) != 1 ||
-           count(ineq_i, map->p[i]->n_ineq, STATUS_ADJ_EQ) != 1 ||
+       if (count(ineq_i, map->p[i]->n_ineq, STATUS_ADJ_EQ) != 1 ||
            any(ineq_j, map->p[j]->n_ineq, STATUS_ADJ_EQ) ||
            any(ineq_i, map->p[i]->n_ineq, STATUS_ADJ_INEQ) ||
            any(ineq_j, map->p[j]->n_ineq, STATUS_ADJ_INEQ))
@@ -932,6 +931,9 @@ static int check_adj_eq(struct isl_map *map, int i, int j,
        if (changed)
                return changed;
 
+       if (count(eq_j, 2 * map->p[j]->n_eq, STATUS_ADJ_INEQ) != 1)
+               return 0;
+
        changed = can_wrap_in_facet(map, i, j, k, tabs, eq_i, ineq_i, eq_j, ineq_j);
 
        return changed;
@@ -1278,6 +1280,7 @@ error:
                for (i = 0; i < n; ++i)
                        isl_tab_free(tabs[i]);
        free(tabs);
+       isl_map_free(map);
        return NULL;
 }