Before, we would check the bmap to figure out how many equalities we
had added, but there was at least one instance where we didn't actually
store the equalities in the tableau, leading to problems if any additional
equalities would be found in the tableau.
{
int i;
struct isl_tab *tab;
- unsigned context_ineq, bset_eq;
+ unsigned context_ineq;
struct isl_basic_set *combined = NULL;
if (!context || !bset)
tab->con[i].is_zero = 0;
tab->con[i].is_redundant = 1;
}
- bset_eq = bset->n_eq;
- bset->n_eq = 0;
bset = isl_basic_set_update_from_tab(bset, tab);
- bset->n_eq = bset_eq;
isl_tab_free(bset->ctx, tab);
ISL_F_SET(bset, ISL_BASIC_SET_NO_IMPLICIT);
ISL_F_SET(bset, ISL_BASIC_SET_NO_REDUNDANT);
}
tab->n_row = 0;
tab->n_con = 0;
+ tab->n_eq = 0;
tab->max_con = n_row;
tab->n_col = n_var;
tab->n_var = n_var;
kill_col(ctx, tab, i);
break;
}
+ tab->n_eq++;
return tab;
error:
if (!tab)
return bmap;
- n_eq = bmap->n_eq;
+ n_eq = tab->n_eq;
if (tab->empty)
bmap = isl_basic_map_set_to_empty(bmap);
else
unsigned n_var;
unsigned n_con;
+ unsigned n_eq;
unsigned max_con;
struct isl_tab_var *var;
struct isl_tab_var *con;