live-out computation: only remove elements that are actually killed
commit393a192f5c2be253a62dd97cb5f6a22c8c5beba9
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 6 Oct 2015 12:54:32 +0000 (6 14:54 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 7 Oct 2015 15:04:36 +0000 (7 17:04 +0200)
tree2443e5bbadeebba46aefccde6212ba466c1213b6
parenta8d652cda2ced7b3f819f0813075c1b0d005419f
live-out computation: only remove elements that are actually killed

The live-out computation is performed by first checking which writes
are killed by a later write or kill and then removing those from
the set of all writes.  However, the result of the dependence analysis
in the first step contains pairs of statement instances and references
that have at least one accessed element in common and not necessarily
all accessed elements in common, while the removal from the set of
all writes removes all associated accessed elements.
Perform the subtraction using the set of actually killed elements
instead.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
ppcg.c
tests/live_out.c [new file with mode: 0644]