interchange, loop distribution, skewing, tiling, index set splitting and statement reordering.
The framework is based on the idea that a transformation can be represented as a mapping
from the original iteration space to a new iteration space. The framework is designed to
provide a uniform way to represent and reason about transformations. We also provide
algorithms to test the legality of mappings, and to generate optimized code for mappings.<>