Next: Bibliography Up: Matrix representation of loop transformations Previous: ...

Summary

  $\mbox{$\bullet$}$
$(I_1,I_2)\cdot {\bf U}$ maps each statement instance (I1,I2) to its new position (K1,K2) in the transformed loop's exec$^{\rm n}$ sequence
  $\mbox{$\bullet$}$
$(D_1,D_2)\cdot {\bf U}$ gives new dependence distance vector, giving test for validity
  $\mbox{$\bullet$}$
Captures skewing, interchange and reversal
  $\mbox{$\bullet$}$
Compose transformations by matrix multiplication ${\bf U_1 \cdot U_2}$
  $\mbox{$\bullet$}$
Resulting loop's bounds may be a little tricky
$\star$
Efficient algorithms exist [#!banerjee:90!#] to maximise parallelism by skewing and loop interchanging
$\star$
Efficient algorithms exist to optimise cache performance by finding the combination of blocking, block size, interchange and skewing which leads to the best reuse [#!wolf:91!#]