Summary: Perfect Pipelining:
A New Loop Parallelization Technique \Lambda
Computer Science Department
Ithaca, New York 14853 USA
Parallelizing compilers do not handle loops in a satisfactory manner. Finegrain transformations
capture irregular parallelism inside a loop body not amenable to coarser approaches but have limited
ability to exploit parallelism across iterations. Coarse methods sacrifice irregular forms of parallelism
in favor of pipelining (overlapping) iterations. In this paper we present a new transformation, Perfect
Pipelining, that bridges the gap between these fine and coarsegrain transformations while retaining
the desirable features of both. This is accomplished even in the presence of conditional branches
and resource constraints. To make our claims rigorous, we develop a formalism for parallelization.
The formalism can also be used to compare transformations across computational models. As an
illustration, we show that Doacross, a transformation intended for synchronous and asynchronous
multiprocessors, can be expressed as a restriction of Perfect Pipelining.
A significant amount of research has been done on parallelization, the extraction of parallelism from