add isl_basic_map_div_is_marked_unknown
commit423161609a5dd32597414067ecac4e1de5401c91
authorSven Verdoolaege <skimo@kotnet.org>
Fri, 17 Jun 2016 12:52:43 +0000 (17 14:52 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 22 Jun 2016 18:33:45 +0000 (22 20:33 +0200)
tree45f400533e3f849b4b7b29659921f3602e4c27f9
parent4d52d57979b97d1947240ea4c72ac948ce57496d
add isl_basic_map_div_is_marked_unknown

An existentially quantified variable may have an explicit representation
in terms of other existentially quantified variables that do not
themselves have an explicit representation.
The first variable therefore does not have a complete
explicit representation in terms of the parameters and
input and output variables.

There was some confusion about these two notions of having
an explicit representation, with div_is_unknown not necessarily returning
the opposite of isl_basic_map_div_is_known, as might be expected,
because div_is_unknown looked at complete explicit representations
in terms of the parameters and input and output variables,
while isl_basic_map_div_is_known only checked the presence
of some explicit representation.

In an attempt to reduce the confusion, isl_basic_map_div_is_known
is replaced by the function isl_basic_map_div_is_marked_unknown,
clarifying that it only checks for (the absence of) some explicit
representation, while div_is_unknown is replaced by
isl_basic_map_div_is_known, checking for a complete explicit
representation.

The new isl_basic_map_div_is_known is therefore stronger than
the old version.  That is, is will return true in fewer cases.
Only some of the original calls to isl_basic_map_div_is_known
have been replaced by calls to isl_basic_map_div_is_marked_unknown,
because it was not entirely clear if the original call
was correct in the other cases.  Using the more narrow interpretation
should be safer in those cases.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_map.c
isl_map_private.h
isl_map_simplify.c