reimplement isl_map_partial_lexopt
In case of a map that is a union of more than one basic map,
the old implementation would look for solutions of later basic
maps in those pieces of the domain where earlier basic maps
have no solutions. This could lead to the domain being broken
up into many small pieces, sometimes dramatically so.
The new implementation tries to avoid some of this splintering
by computing solutions for each basic map separately and then
combining the results.
In the reported case, the map was actually single-valued, so
instead we could have also detected this special case and just
returned the input or we could have tried to make the parametric
integer programming integer return a more compact result,
but the new implementation is more general that the first option
and easier than the second option.
Reported-by: Tobias Grosser <grosser@fim.uni-passau.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>