isl_basic_map_lexopt*: postpone extraction of domain
commit28eec4a5475426a5a8d61133acbbea14b338f2f0
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 14 Jun 2016 09:39:14 +0000 (14 11:39 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Mon, 27 Jun 2016 13:36:04 +0000 (27 15:36 +0200)
tree691bc4b7aa6a875a600241eb8240d462c959e63b
parentb1951ad5b3736e14f10474298f525389ea8da6ad
isl_basic_map_lexopt*: postpone extraction of domain

When isl_basic_map_lexopt* is used to compute a full optimum,
a domain is first extracted from the input and then those constraints
are added back to the input in isl_tab_basic_map_partial_lexopt*.
Avoid this needless intersection by postponing the extraction
of the domain until isl_tab_basic_map_partial_lexopt* such that it can
tell if the intersection is needed.

The intersection that is avoided in this way should be fairly
harmless since the constraints that would be added are identical
to some of the constraints that already in the description of the input.
However, in a subsequent commit, the domain will optionally be computed
more accurately and in that case the intersection could introduce
additional (redundant) constraints that may involve additional
existentially quantified variables.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_map.c
isl_map_lexopt_templ.c
isl_tab.h
isl_tab_lexopt_templ.c
isl_tab_pip.c