3 research outputs found
Finding Legal Reordering Transformations using Mappings
Traditionally, optimizing compilers attempt to improve the performance of
programs by applying source to source transformations, such as loop
interchange, loop skewing and loop distribution. Each of these
transformations has its own special legality checks and transformation rules
which make it hard to analyze or predict the effects of compositions of
these transformations. To overcome these problems we have developed a
framework for unifying iteration reordering transformations. The framework
is based on the idea that all reordering 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. An optimizing compiler would use our framework by
finding a mapping that both corresponds to a legal transformation and
produces efficient code. We present the mapping selection problem as a
search problem by decomposing it into a sequence of smaller choices.
We then characterize the set of all legal mappings by defining an implicit
search tree.
(Also cross-referenced as UMIACS-TR-94-71
A Framework for Unifying Reordering Transformations
We present a framework for unifying iteration reordering transformations
such as loop 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 schedule that maps the
original iteration space to a new iteration space. The framework is
designed to provide a uniform way to represent and reason about
transformations. As part of the framework, we provide algorithms
to assist in the building and use of schedules. In particular, we
provide algorithms to test the legality of schedules, to align schedules
and to generate optimized code for schedules.
(Also cross-referenced as UMIACS-TR-93-134
Non-unimodular Transformations of Nested Loops
This paper presents a linear algebraic approach to modeling loop transformations. The approach unifies apparently unrelated recent developments in supercompiler technology. Specifically we show the relationship between the dependence abstraction called dependence cones, and fully permutable loop nests. Compound transformations are modeled as matrices. Nonsingular linear transformations presented here subsumes the class of unimodular transformations. Nonunimodular transformations (with determinant 1) create "holes" in the transformed iteration space. We change the step size of loops in order to "step aside from these holes" when traversing the transformed iteration space. For the class of non-unimodular loop transformations, we present algorithms for deriving the loop bounds, the array access expressions and step sizes of loops in the nest. The algorithms are based on the Hermite Normal Form of the transformation matrix. We illustrate the use of this approach in several problems such a..