cucapra/dahlia

Split views bypass typechecker and allow incorrect loop unrolling

Opened this issue · 0 comments

The following can be compiled

let C: float[32 bank 4];
split split_C = C[by 2];
for (let i=0..2) unroll 2 {
    for (let j=0..16) unroll 2 {
        split_C[i][j];
    }
}

---

for (let i=0..2) unroll 2 {
    for (let j=0..16) unroll 4 {
        split_C[i][j];
    }
}

---

for (let i=0..2) unroll 2 {
    for (let j=0..16) unroll 8 {
        split_C[i][j];
    }
}

---

for (let i=0..2) unroll 2 {
    for (let j=0..16) unroll 16 {
        split_C[i][j];
    }
}