pn2adg: keep filters in dependence relations
commit3dd35b7f3e1c8cc5ff500222aec30c62d62dcd3f
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 12 Jan 2012 16:51:30 +0000 (12 17:51 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Sat, 14 Jan 2012 16:36:07 +0000 (14 17:36 +0100)
tree5c16ae53f55654aabbdf21bda044fa6fa8a0f364
parent20369fa86c6ace307af468429c7c5bb54ac99f19
pn2adg: keep filters in dependence relations

When support was added for filters in dependence relations
in 8e42acc (pn2adg: accept filters in dependence relations,
Wed Dec 28 11:04:16 2011 +0100), the filters were first
removed and only added back in the end.
The reason was that we don't want these filters to appear
in the range of "map" field of an adg_edge.

This works fine as long as the dependence relation does not
involve any unions.  However, if the dependence relations does
involve unions, then a choice that was already handled at the
level of the input ports, may be reintroduced at the level
of the output ports, resulting in duplicate output ports.
The solution is to maintain the relation between the filters
in the domain and those in the range by not projecting out the latter
only to readd them at some later stage.

This commit therefore reverts most of 8e42acc (pn2adg: accept
filters in dependence relations, Wed Dec 28 11:04:16 2011 +0100).

Reported-by: Todor Stefanov <stefanov@liacs.nl>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
pn2adg.cc
tests/inputs/lsod_pn_adg.yaml