isl_basic_map_output_defining_equality: accept divs that do not depend on output
commit8f144dc408423d131e3beb30472d5061d426b4c6
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 5 Jun 2014 10:36:54 +0000 (5 12:36 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Mon, 22 Sep 2014 12:09:37 +0000 (22 14:09 +0200)
tree9ecfd2a5c66529582b8a0ee67dec76e1c9e68dd5
parent4710eefda78c69e70e49ad6690349ad1781a3373
isl_basic_map_output_defining_equality: accept divs that do not depend on output

Originally, we would not consider an equality to be a defining equality
if it depends on any integer divisions.  However, if it only depends
on integer divisions that are defined in terms of parameters and
input dimension, then we can also consider the equality to be
a defining equality.

This allows us to recover an affine expression from
the set representation of an expression such as

[N] -> { [3*floor(N/2) + 5*floor(N/3)] }

Without these changes, we would resort to performing
parametric integer programming to recover a piecewise
affine expression, which could (and in this case does)
involve multiple pieces.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_aff.c
isl_map.c
isl_test.c