Closed ftynse closed 9 years ago
c4 dimension gets removed somehow (0 == 0) by the second transformation
SCATTERING
11 14 9 2 0 1
# e/i| c1 c2 c3 c4 c5 c6 c7 c8 c9 | i j | N | 1
0 -1 0 0 0 0 0 0 0 0 0 0 0 0 ## c1 == 0
1 0 -4 0 1 0 0 0 0 0 0 0 0 0 ## -4*c2+c4 >= 0
1 0 4 0 -1 0 0 0 0 0 0 0 0 3 ## 4*c2-c4+3 >= 0
0 0 0 -1 0 0 0 0 0 0 0 0 0 0 ## c3 == 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 ## 0 == 0
0 0 0 0 0 -1 0 0 0 0 0 0 0 0 ## c5 == 0
1 0 0 0 0 0 -5 0 1 0 0 0 0 0 ## -5*c6+c8 >= 0
1 0 0 0 -1 0 5 0 -1 0 1 0 0 4 ## -c4+5*c6-c8+i+4 >= 0
0 0 0 0 0 0 0 -1 0 0 0 0 0 0 ## c7 == 0
0 0 0 0 0 0 0 0 -1 0 0 1 0 0 ## c8 == j
0 0 0 0 0 0 0 0 0 -1 0 0 0 0 ## c9 == 0
For a loop nest with at least two loops, e.g. polynomial multiplication
tiling the outer loop with
tile([0,0,0],1,1,4,0);
works as expected and producesHowever tiling the inner loop with
tile([0,0,0,0],3,3,4,0);
afterwards generates incorrect code with an extra loop and iterator reuse