handle data dependent accesses
In particular, keep track of may-writes and must-writes separately.
Adjust data flow analysis, the computation of live-out accesses and
the computation of the data to be copied onto the device to take
into account the may/must nature of writes.
If an array reference group involves any may writes (that are not
also must writes), then it is not considered for mapping to shared/private
memory. Supporting such mappings for such reference groups would
require making sure that all data that may or may not be written
is first copied to shared/private memory.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>