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>