The function isl_basic_map_align_divs currently does not support
existentially quantified variables in the basic map that prescribes
the order of the local variables.
However, even if it did, there could be no constraint in the input
basic map that is a shifted copy of a constraint in the context
that involves existentially quantified variables.
Remove the existentially quantified variables and the constraints
involving these variables from the context.
Note that a call to isl_basic_map_drop_constraints_involving_unknown_divs
usually also results in the removal of the existentially quantified
variables, but this is not guaranteed.
A call to isl_basic_map_remove_unknown_divs is therefore added as well.
Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
@@ -2293,6 +2293,10 @@ static __isl_give isl_basic_map *isl_basic_map_remove_shifted_constraints(
return bmap;
}
+ context = isl_basic_map_drop_constraints_involving_unknown_divs(
+ context);
+ context = isl_basic_map_remove_unknown_divs(context);
+
bmap = isl_basic_map_order_divs(bmap);
context = isl_basic_map_align_divs(context, bmap);
bmap = isl_basic_map_align_divs(bmap, context);