isl_map_union: special case obviously equal inputs
The original implementation of isl_map_union simply collects
the basic maps in both input maps, even if some of these basic
maps or even the entire two inputs maps are essentially the same.
Repeatedly calling isl_map_union on pairs of equal input maps
would therefore result in an explosion in the number of basic maps.
If the inputs are obviously equal, we now simply return one of the inputs
rather than duplicating the basic maps. In future, we may also like
to add special cases for indentical basic maps inside the inputs,
even when those inputs are not completely identical.
As a side effect, this commit also modifies some of the test cases because
the check for obviously equal inputs normalizes the constraints of those inputs.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>