Data depedent parallel access is accepted
rachitnigam opened this issue · 0 comments
rachitnigam commented
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.