Skip to content

Commit c336f3a

Browse files
committed
[region-isolation] Track transferring separately from region information.
What this does is really split the one dataflow we are performing into two dataflows we perform at the same time. The first dataflow is the region dataflow that we already have with transferring never occurring. The second dataflow is a simple gen/kill dataflow where we gen on a transfer instruction and kill on AssignFresh. What it tracks are regions where a specific element is transferred and propagates the region until the element is given a new value. This of course means that once the dataflow has converged, we have to emit an error not if the value was transferred, but if any value in its region was transferred.
1 parent b760fec commit c336f3a

File tree

4 files changed

+348
-199
lines changed

4 files changed

+348
-199
lines changed

0 commit comments

Comments
 (0)