break up access relations into may_read/may_write/must_write
commit79ccc22fa3e46e26d9dcd842b40bb7eb233e3e6f
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 25 Mar 2014 21:40:45 +0000 (25 22:40 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 20 Jun 2014 15:31:11 +0000 (20 17:31 +0200)
tree0fb3d386072d92d0746c39fd4261634ae06f4be5
parent6f4d1acdb8633a942e7cfa44d4f61a6422f33602
break up access relations into may_read/may_write/must_write

Internally, we currently only make a distinction between may accesses and
must accesses.  At the level of an individual access expression, we even only
have a single (possibly argument dependent) access relation.
If we want to keep track of the accesses performed by a function called
from a function call, we will need to make a further distinction between
reads and writes.  Furthermore, if member accesses are involved, then
a function may access elements from different spaces through the same
argument.  The access relations therefore need to be changed into union maps.

We already changed the ouside interface with respect to these changes.
Now we make the internal represenation follow suit.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
30 files changed:
emit.c
expr.c
expr.h
expr_access_type.h
expr_arg.c
nest.c
parse.c
scop.c
tests/autodetect/decl.scop
tests/break4.scop
tests/break6.scop
tests/conditional_assignment.scop
tests/conditional_assignment2.scop
tests/continue2.scop
tests/continue3.scop
tests/continue4.scop
tests/continue5.scop
tests/decl.scop
tests/decl2.scop
tests/decl3.scop
tests/encapsulate/for_while.scop
tests/encapsulate/independent5.scop
tests/encapsulate/inf_break.scop
tests/for_while_inc2.scop
tests/for_while_inc3.scop
tests/for_while_init.scop
tests/for_while_init2.scop
tests/for_while_init3.scop
tests/forward_substitution3.scop
tests/independent3.scop