Wrong merge function at combine
Closed this issue · 0 comments
tissue3 commented
Dahlia does not allow the following code:
decl m1: float[32][32 bank 32];
decl m2: float[32 bank 32][32];
decl prod: float[32][32];
for (let i = 0..32) {
for (let j = 0..32) {
for(let k = 0..32) unroll 32 {
let mult = m1[i][k] * m2[k][j];
---
m1[i][k] := 0.0;
} combine {
prod[i][j] += mult;
}
}
}
It will reports mult
is not bound in scope. It's wrong. mult
is bounded in scope.
The issue is the merge
function on type environments doesn't correctly merge the sets of bound identifiers according to @rachitnigam .