cucapra/dahlia

Data depedent parallel access is accepted

rachitnigam opened this issue · 0 comments

The following program passes typechecking. However, it'll require reading two values from foo at the same time:

let foo: float[2];

for (let i = 0..2) unroll 2 {
  let y = i + 1;
  foo[y]
}

The issue if related to the complications from #50. The context "requires" two parallel reads from foo but the capability checker doesn't check this because it assumes that foo[y] can be moved outside the loop.