add dependences between sources with shared sinks to forced dependences
commit1188466a68258d6032d55fbde5284dcfb504f45c
authorSven Verdoolaege <skimo@kotnet.org>
Sat, 28 Mar 2015 12:52:03 +0000 (28 13:52 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Mon, 30 Mar 2015 11:40:06 +0000 (30 13:40 +0200)
treedb34d707e6b3d19ae599237da297352797b72a37
parent3c596a3b85dd32d0c3b335b4494aadacc346b1de
add dependences between sources with shared sinks to forced dependences

When live-range reordering is turned on, we ignore the usual false
dependences and replace them by order dependences between live-ranges
that are only activated when the adjacent live-ranges are not local
to a given partial schedule.
If there are any may-writes, however, then there may be several
live-ranges with the same sink (read), but different sources (writes).
The false dependences between these writes were also getting ignored,
while they should be enforced unconditionally since several of
the potential writes may turn out to actually write to the data element.

Compute dependences between such sources with shared sinks and
and them to the forced dependences such that they will be enforced
unconditionally.

Reported-by: Michael Kruse <MichaelKruse@meinersbur.de>
Tested-by: Michael Kruse <MichaelKruse@meinersbur.de>
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
ppcg.c
ppcg.h
tests/shared_sink.c [new file with mode: 0644]