## A Framework for Unifying Reordering Transformations (1993)

Citations: | 72 - 10 self |

### BibTeX

@TECHREPORT{Kelly93aframework,

author = {Wayne Kelly and William Pugh},

title = {A Framework for Unifying Reordering Transformations},

institution = {},

year = {1993}

}

### Years of Citing Articles

### OpenURL

### Abstract

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. This work is supported by an NSF PYI grant CCR-9157384 and by a Packard Fellowship. 1 Introduction Optimizing compilers reorder iterations of statements to improve instruction scheduling, register use, and cache utilization, and to expose parallelism. Many different reordering transformations have been developed and studied, su...

### Citations

741 |
A set of Level 3 Basic Linear Algebra Subprograms
- Dongarra, Croz, et al.
- 1990
(Show Context)
Citation Context ...l strip mining ffl index set splitting ffl loop distribution ffl imperfectly nested triangular loop interchange Code adapted from CHOSOL in the Perfect club (SD) Banded SYR2K [LP92] adapted from BLAS =-=[JDH90]-=- Original code do 30 i=2,n 10 sum(i) = 0. do 20 j=1,i-1 20 sum(i) = sum(i) + a(j,i)*b(j) 30 b(i) = b(i) - sum(i) Original code do 10 i = 1, n do 10 j = i, min(i+2*b-2,n) do 10 k = max(i-b+1,j-b+1,1),m... |

709 | A data locality optimizing algorithm - Wolf, Lam - 1991 |

450 | The Omega test: a fast and practical integer programming algorithm for dependence analysis - Pugh - 1991 |

441 | Optimizing Supercompilers for Supercomputers - Wolfe - 1989 |

379 | A Loop Transformation Theory and an Algorithm to Maximize Parallelism - Wolf, Lam |

293 | Automatic translation of fortran programs to vector form
- Allen, Kennedy
- 1987
(Show Context)
Citation Context ... interchange ffl loop reversal ffl loop skewing, ffl statement reordering ffl loop distribution ffl loop fusion ffl loop alignment [ACK87] ffl loop interleaving [ST92] ffl loop blocking 1 (or tiling) =-=[AK87]-=- ffl index set splitting 1 [Ban79] ffl loop coalescing 1 [Pol88] ffl loop scaling 1 [LP92] 1.2 Examples Figure 1 gives some interesting examples of schedules. 1.3 Overview Our framework is designed to... |

262 |
Conversion of control dependence to data dependence
- Allen, Kennedy, et al.
- 1983
(Show Context)
Citation Context ...[i] ! [i] j i even g by introducing wildcard variables (denoted by greek letters): f [i] ! [i] j 9ff s:t: i = 2ff g. 2.3 Control dependence We require that conditionals be removed using if-conversion =-=[AKPW83]-=- and that all loop bounds be affine functions of surrounding loop variables and symbolic constants. All control dependences can therefore be implicitly represented by describing the iteration space us... |

216 | Some efficient solutions to the affine scheduling problem: Part ii: Multidimensional time - Feautrier - 1992 |

185 |
More Iteration Space Tiling
- Wolfe
- 1989
(Show Context)
Citation Context ...ps, which can be useful for optimizing locality. Unimodular transformations are combined with blocking in [WL91a, ST92]. A similar approach, although not using a unimodular framework, is described in =-=[Wol89a]-=-. Lu describes in [Lu91] a classification of scheduling techniques into various generality classes. Using their classification scheme, our schedules fit into the Mixed-Nonuniform class which is the mo... |

168 | Unimodular transformations of double loops - Banerjee - 1990 |

124 | A singular loop transformation framework based on non-singular matrices
- Li, Pingali
- 1994
(Show Context)
Citation Context ...ution ffl loop fusion ffl loop alignment [ACK87] ffl loop interleaving [ST92] ffl loop blocking 1 (or tiling) [AK87] ffl index set splitting 1 [Ban79] ffl loop coalescing 1 [Pol88] ffl loop scaling 1 =-=[LP92]-=- 1.2 Examples Figure 1 gives some interesting examples of schedules. 1.3 Overview Our framework is designed to provide a uniform way to represent and reason about reordering transformations. The frame... |

112 |
Parallel Programming and Compilers
- Polychronopoulos
- 1988
(Show Context)
Citation Context ...reordering ffl loop distribution ffl loop fusion ffl loop alignment [ACK87] ffl loop interleaving [ST92] ffl loop blocking 1 (or tiling) [AK87] ffl index set splitting 1 [Ban79] ffl loop coalescing 1 =-=[Pol88]-=- ffl loop scaling 1 [LP92] 1.2 Examples Figure 1 gives some interesting examples of schedules. 1.3 Overview Our framework is designed to provide a uniform way to represent and reason about reordering ... |

97 | Compiler blockability of numerical algorithms - Carr, Kennedy - 1992 |

70 |
Automatic decomposition of scientific programs for parallel execution
- Allen, Callahan, et al.
- 1987
(Show Context)
Citation Context ... transformation that can be obtained by some combination of: ffl loop interchange ffl loop reversal ffl loop skewing, ffl statement reordering ffl loop distribution ffl loop fusion ffl loop alignment =-=[ACK87]-=- ffl loop interleaving [ST92] ffl loop blocking 1 (or tiling) [AK87] ffl index set splitting 1 [Ban79] ffl loop coalescing 1 [Pol88] ffl loop scaling 1 [LP92] 1.2 Examples Figure 1 gives some interest... |

61 |
A loop restructuring research tool
- Wolfe
- 1990
(Show Context)
Citation Context ... refers to the nesting of the loops around the inner most statement. Michael Wolfe notes that this transformation requires imperfect triangular loop interchange, distribution, and index set splitting =-=[Wol91]-=-. We can also produce the IJK ordering using the following schedule: T 10 : f[ k; i ] ! [ i; k; 1; 0 ]g T 20 : f[ k; i; j ] ! [ i; j; 0; k ]g A naive code generation strategy that only examined the mi... |

45 | Non-Unimodular Transformations of Nested Loops - Ramanujam - 1992 |

45 | A general framework for iteration-reordering loop transformations
- Sarkar, Thekkath
- 1992
(Show Context)
Citation Context ...tained by some combination of: ffl loop interchange ffl loop reversal ffl loop skewing, ffl statement reordering ffl loop distribution ffl loop fusion ffl loop alignment [ACK87] ffl loop interleaving =-=[ST92]-=- ffl loop blocking 1 (or tiling) [AK87] ffl index set splitting 1 [Ban79] ffl loop coalescing 1 [Pol88] ffl loop scaling 1 [LP92] 1.2 Examples Figure 1 gives some interesting examples of schedules. 1.... |

40 |
Uniform techniques for loop optimization
- Pugh
(Show Context)
Citation Context ... the source program. We use Sym to represent the set of all symbolic constants. Table 1 gives a brief description of the operations on integer tuple sets and relations that we have implemented. 4 See =-=[Pug91]-=- for a more thorough description. 2.2 Simple relations Internally, a relation is represented as the union of a set of simple relations: relations that can be described by the conjunction of a set of l... |

39 |
Speedup of Ordinary Programs
- Banerjee
- 1988
(Show Context)
Citation Context ...l loop skewing, ffl statement reordering ffl loop distribution ffl loop fusion ffl loop alignment [ACK87] ffl loop interleaving [ST92] ffl loop blocking 1 (or tiling) [AK87] ffl index set splitting 1 =-=[Ban79]-=- ffl loop coalescing 1 [Pol88] ffl loop scaling 1 [LP92] 1.2 Examples Figure 1 gives some interesting examples of schedules. 1.3 Overview Our framework is designed to provide a uniform way to represen... |

27 |
The systematic design of systolic arrays
- Quinton
- 1987
(Show Context)
Citation Context ...Example of Aligning Schedules 12 5.5.2 A complete technique If we wish to construct exactly the set of constraints described by Equation 9 then we can use the following techniques proposed by Quinton =-=[Qui87]-=-. The vertex method [Qui87] relies on the fact that a linear constraint holds everywhere inside a polyhedron if and only if it holds at all vertices of the polyhedron. Therefore, we can convert Equati... |

26 | Going beyond integer programming with the Omega test to eliminate false data dependences
- Pugh, Wonnacott
- 1995
(Show Context)
Citation Context ...scribe our code generation algorithm. This algorithm takes a schedule and produces optimized code corresponding to the transformation represented by that schedule. By making use of the gist operation =-=[PW92]-=- we are able to produce code with a minimal number of conditionals and loop bounds. In Section 7 we extend our schedule syntax to allow us to denote the fact that a schedule produces fully-permutable ... |

20 |
A unified framework for systematic loop transformations
- Lu
- 1991
(Show Context)
Citation Context ...arily unimodular (i.e., 1-1 but not necessarily onto). ffl We allow the dimensionality of the old and new iteration spaces to be different. ffl We allow the schedules to be piecewise (as suggested by =-=[Lu91]-=-): we can specify a schedule T p as S i T pi j C pi where the T pi j C pi 's are schedules with disjoint domains. ffl We allow the f j 0 s to be functions that include integer division and modular ope... |

15 | Deriving good transformations for mapping nested loops on hierarchical parallel machines - Kumar, Kulkarni, et al. - 1992 |

12 | Massive Parallelism through Program Restructuring - Wolfe - 1990 |