Integrating Scalar Optimization and Parallelization

Compiling programs to use parallelism and memory hierarchy efficiently requires both parallelizing (high-level) transformations and traditional scalar (low-level) optimizations. Our compiler has only one intermediate language — SUIF (Stanford University Intermediate Form) — for both parallelization and scalar optimizations. Having only one intermediate language offers two advantages: no duplication of functions between the two levels, and availability of high-level information at the low-level. This paper shows how SUIF integrates the two levels of abstraction, and how the SUIF compiler is organized to take advantage of this integration.

[1]  Richard L. Sites,et al.  Machine-independent PASCAL code optimization , 1979, SIGPLAN '79.

[2]  William H. Harrison A New Strategy for Code Generation—the General-Purpose Optimizing Compiler , 1979, IEEE Transactions on Software Engineering.

[3]  Louise Trevillyan,et al.  The Experimental Compiling System , 1980, IBM J. Res. Dev..

[4]  Charles N. Fischer,et al.  Retargetable Compiler Code Generation , 1982, CSUR.

[5]  Martin Hopkins,et al.  An overview of the PL.8 compiler , 1982, SIGPLAN '82.

[6]  Fred C. Chow,et al.  A portable machine-independent global optimizer--design and measurements , 1984 .

[7]  Deborah S. Coutant Retargetable high-level alias analysis , 1986, POPL '86.

[8]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[9]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[10]  Monica S. Lam,et al.  A Loop Transformation Theory and an Algorithm to Maximize Parallelism , 1991, IEEE Trans. Parallel Distributed Syst..

[11]  Monica S. Lam,et al.  Efficient and exact data dependence analysis , 1991, PLDI '91.

[12]  Monica S. Lam,et al.  A data locality optimizing algorithm , 1991, PLDI '91.

[13]  Steven W. K. Tjiang,et al.  Sharlit—a tool for building optimizers , 1992, PLDI '92.