Using static single assignment form in a code optimizer

Static single assignment form represents data dependences elegantly and provides a basis for powerful optimizations. Table-driven techniques for peephole optimization and code generation are straightforward and effective. it is natural to want to use both together in a code optimizer. However, doing so reveals that static single assignment form does not remove all antidependences, and that it conflicts with table-driven code generation for 2-address machines. This paper describes these problems and how to solve them.

[1]  Susan L. Graham,et al.  Table-Driven Code Generation , 1980, Computer.

[2]  Susan L. Graham,et al.  An experiment in table driven code generation , 1982, SIGPLAN '82.

[3]  Christopher W. Fraser,et al.  Code selection through object code optimization , 1984, TOPL.

[4]  Kurt Joseph Hebel An environment for the development of digital signal processing software , 1989 .

[5]  John Cocke,et al.  A methodology for the real world , 1981 .

[6]  Justin O. Graver,et al.  TS: an optimizing compiler for smalltalk , 1988, OOPSLA 1988.

[7]  G. Tylutki Building a self-modifying user interface , 1989 .

[8]  M. Wegman,et al.  Global value numbers and redundant computations , 1988, POPL '88.

[9]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[10]  Jack W. Davidson,et al.  Simplifying code generation through peephole optimization , 1981 .

[11]  Ralph E. Johnson,et al.  The RTL System: A Framework for Code Optimization , 1991, Code Generation.

[12]  Gregor von Bochmann,et al.  Videotex Networks , 1980, Computer.

[13]  Susan L. Graham,et al.  A new method for compiler code generation , 1978, POPL '78.

[14]  David L. Kuck,et al.  The Structure of Computers and Computations , 1978 .

[15]  Bowen Alpern,et al.  Detecting equality of variables in programs , 1988, POPL '88.

[16]  Jong-Deok Choi,et al.  Automatic construction of sparse data flow evaluation graphs , 1991, POPL '91.

[17]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[18]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.

[19]  Ron Cytron,et al.  Code motion of control structures in high-level languages , 1986, POPL '86.

[20]  John Cocke,et al.  Register Allocation Via Coloring , 1981, Comput. Lang..

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

[22]  Christopher W. Fraser,et al.  The Design and Application of a Retargetable Peephole Optimizer , 1980, TOPL.

[23]  Alfred V. Aho,et al.  Code generation using tree matching and dynamic programming , 1989, ACM Trans. Program. Lang. Syst..