I'm pretty sure that they mean that they transform memmory in order to change loops like
for(k=0; k<large_number; k++) for(i=0; i<large_number2; i++) for(j=0; j<large_number3; j++) foo[i][k] = bar[i][k] * gonk[k][j];
that uses cache locality verry porly into the same loop, but with the matrix gonk transformed so that
for(k=0; k<large_number; k++) for(i=0; i<large_number2; i++) for(j=0; j<large_number3; j++) foo[i][k] = bar[i][k] * gonk[j][k];
which is much better. Prefetching is also something you would want to use, especially in modules that operate on a lot of continous data, like the image module. What it does, if you for some reason don't know is that it "preheats" the cache with data, thus increasing the cache performance. You can actually see a performance increase even with processors that don't support prefetching.
/ Peter Lundqvist (disjunkt)
Previous text:
2003-01-16 04:10: Subject: Re: -O3
Test it? What do they mean with "loop and memory access transformation"?
/ Martin Stjernholm, Roxen IS