language: en

Interprocedural Transformations for Parallel Code Generation

Mary W. Hall Ken Kennedy Kathryn S. M c Kinley
Department of Computer Science, Rice University,
Houston, TX 77251-1892

Abstract We present a new approach that enables compiler optimization of procedure calls and loop nests containing procedure calls. We introduce two inter-procedural transformations that move loops across procedure boundaries, exposing them to traditional optimizations on loop nests. These transformations are incorporated into a code generation algorithm for a shared-memory multiprocessor. The code generator relies on a machine model to estimate the expected benefits of loop parallelization and parallelism-enhancing transformations. Several transformation strategies are explored and one that minimizes total execution time is selected. Efficient support of this strategy is provided by an existing interprocedural compilation system. We demonstrate the potential of these techniques by applying this code generation strategy to two scientific applications programs.

1 Introduction