isl_basic_map_gist: allow existentially quantified variables
commita5e5215e9df2d10d205d0672fc5f56c0e3be70f2
authorSven Verdoolaege <sven.verdoolaege@gmail.com>
Sun, 19 May 2024 14:43:09 +0000 (19 16:43 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Sat, 25 May 2024 13:04:53 +0000 (25 15:04 +0200)
tree8d85602c02d423b1eb6171995c36b00f885c8163
parent1ccdbf1d5a128636ff1483306e62467e3f5f3b8d
isl_basic_map_gist: allow existentially quantified variables

The reason that isl_basic_map_gist did not allow
existentially quantified variables was that
isl_basic_map_align_divs did not allow existentially quantified variables.
This can be solved by letting isl_basic_map_align_divs
introduce unconstrained existentially quantified variables
in the corresponding locations.
However, the common idiom of having two basic maps align
to each other's integer divisions may introduce additional
existentially quantified variables in each call.
The callers therefore now need to be extra careful
not to apply this idiom if either basic map has
existentially quantified variables.
In fact, all callers except for the one inside isl_basic_map_gist
ensure that the basic maps have no existentially quantified variables,
either through an explicit check, the computation of integer divisions or
the removal of existentially quantified variables.

This changes one of the originally failing test cases
into a passing test case.

Requested-by: Uday Reddy B <udayreddy@gmail.com>
Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
isl_map.c
isl_test.c
isl_test2.cc