only allow a single isl_pw_* object with given domain space in isl_union_pw_*
commit4d102a49d95bc3c551f825e2eb9a91e143a36477
authorSven Verdoolaege <skimo@kotnet.org>
Sat, 7 Jun 2014 09:19:41 +0000 (7 11:19 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Sun, 26 Oct 2014 12:08:25 +0000 (26 13:08 +0100)
tree040941c4fc3d2c3dd65d6142d3f873d4c2972a53
parentbf7f1ec11ba5809fdbdcf33f647328775ac83c28
only allow a single isl_pw_* object with given domain space in isl_union_pw_*

Currently, an isl_union_pw_multi_aff can contain multiple
isl_pw_multi_aff objects with the same domain space.
In particular, the domains of these objects may intersect,
meaning that the isl_union_pw_multi_aff object is not a function,
even though it is supposed to be one.

It would be possible to add checks to ensure that such domains
do not intersect, but it is more transparent to simply not allow
two or more isl_pw_multi_aff objects with the same domain space
in an isl_union_pw_multi_aff object.

Originally, the space of an isl_pw_* object was that of the domain
of this function.  It was therefore impossible for and isl_union_pw_*
object to contain more than one isl_pw_* object defined over the
same domain space.
This was changed in 3280c05 (make isl_pw_* object live in a map space,
Tue Aug 30 16:47:59 2011 +0200) to prepare for the isl_pw_multi_aff
object type introduced in 6f87cea (add isl_pw_multi_aff,
Thu Sep 1 11:58:50 2011 +0200).
Still, even after this change in space, an isl_pw_* object
defined over a given domain space could only live in a single
space since the target space was predefined.

At present, the only isl_union_pw_* object type that allows for multiple
target spaces is the isl_union_pw_multi_aff type, which was
introduced in f068f30 (add isl_union_pw_multi_aff,
Tue Mar 20 14:24:15 2012 +0100).

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
isl_fold.c
isl_union_templ.c