next up previous
Next: Regression Test Up: Application of The Previous: Counting Solutions to

Code Generation

Optimizing compilers apply iteration reordering transformations for a variety of reasons. By changing the order of computations in a loop, these transformations can expose parallelism and improve data locality. Traditionally, reordering transformations have been used by applying a sequence of pre-specified transformations such as loop interchange, loop distribution, statement re-ordering. Each of these transformations own checks and transformation rules. These checks and rules make it hard to analyze or predict the effects of a sequence of these transformations without actually performing the transformations and analyzing the resulting code. In the paper [4], the omega library is used to deal with the problem of generating transformed code given an original program and a mapping. This involves creating loops and conditional that involves over all in the new iteration space. Many code generation algorithm use linear algebra to present and manipulate sections of iteration space. In paper [5], high-level abstractions called tuple sets and tuple relations were used. (A tuple relation is a mapping from tuples to tuples). Tuple relations and sets are represented using the omega library. The Omega library is a set of routines for manipulating affine constraints over integer variables. The omega library uses the rules of the omega test. All operators in the library return their results in the simplest form possible, e.g, redundant constraints are detected and removed by using the omega test.



Generated by latex2html-95.1
Fri Jul 12 14:53:37 EDT 1996