# A unified approach to global program optimization

@article{Kildall1973AUA, title={A unified approach to global program optimization}, author={Gary A. Kildall}, journal={Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages}, year={1973} }

A technique is presented for global analysis of program structure in order to perform compile time optimization of object code generated for expressions. [] Key Method A general purpose program flow analysis algorithm is developed which depends upon the existence of an "optimizing function." The algorithm is defined formally using a directed graph model of program flow structure, and is shown to be correct.

## 946 Citations

### Interprocedural constant propagation

- Computer ScienceSIGP
- 2004

A general algorithm for determining for each procedure in a given program the set of inputs that will have known constant values at run time that is intended for use in a sophisticated software development environment.

### Predicting the effects of optimization on a procedure body

- Computer ScienceSIGPLAN '79
- 1979

A technique is described for predicting the code improvement that can be expected due to constant folding and test elision when a procedure call involving constant actual parameters is integrated.

### Efficient call graph analysis

- Computer ScienceLOPL
- 1992

The algorithm computes the possible bindings of procedure variables in languages where such variables only receive their values through parameter passing, such as Fortran, to accommodate a limited form of assignments to procedure variables.

### Computation and use of data flow information in optimizing compilers

- Computer ScienceActa Informatica
- 2004

It is shown for a small language, how global data flow information can be collected, used in determining the applicability of optimizing program transformations, and updated after transformations have made the flow information invalid.

### Automatic generation of data-flow analyzers : a tool for building optimizers

- Computer Science
- 1993

This dissertation concerns the building of optimizers that are modular and extensible, in which each phase is based on a data-flow analysis of the program and on an optimization function that transforms the program.

### A unified compiler framework for program analysis, optimization, and automatic vectorization with chains of recurrences

- Computer Science
- 2009

It is shown how Inductive SSA enables and/or enhances loop-variant variable analysis, improves dependence testing for loops, and how it can be effectively used by many classic compiler optimizations to improve compilation results.

### Incremental whole program optimization and compilation

- Computer Science2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO)
- 2017

A practical and extensible framework for incremental whole program optimization (WPO) and compilation that achieves up to 7X compilation speedup for typical edits and a novel mechanism for achieving the no code generation diff requirement in the presence of multi-level inline expansion.

### Automatic Determination of May/Must Set Usage in Data-Flow Analysis

- Computer Science2008 Eighth IEEE International Working Conference on Source Code Analysis and Manipulation
- 2008

The DFAGen Tool is presented, which generates implementations for locally separable data-flow analyses that are pointer, side-effect, and aggregate cognizant from an analysis specification that assumes only scalars.

## References

SHOWING 1-10 OF 63 REFERENCES

### Optimization of expressions in Fortran

- Computer ScienceCACM
- 1969

A method of optimizing the computation of arithmetic and indexing expressions of a Fortran program is presented. The method is based on a linear analysis of the definition points of the variables and…

### Control flow analysis

- Computer ScienceSymposium on Compiler Optimization
- 1970

The basic control flow relationships are expressed in a directed graph and various graph constructs are found and shown to codify interesting global relationships.

### High speed compilation of efficient object code

- Computer ScienceCACM
- 1965

A three-pass compiler with the following properties is briefly described: The last two passes scan an intermediate language produced by the preceding pass in essentially the reverse of the order in…

### Some techniques for algorithm optimization with application to matrix arithmetic expressions

- Computer Science
- 1968

This thesis contributes to the production of optimum algorithms in two ways: a technique was developed for producing new algorithms equivalent to old algorithms, and a technique is described which reduces the effort required by certain exhaustive searches over 'well- structured' search spaces.

### A formal approach to code optimization

- Computer ScienceSymposium on Compiler Optimization
- 1970

An algorithm is presented which produces machine code for evaluating arithmetic expressions on machines with N ≥ 1 general purpose registers and it is proved that this algorithm produces optimal code when the cost criterion is the length of machine code generated.

### Compiling techniques for Boolean expressions and conditional statements in ALGOL 60

- Computer ScienceCACM
- 1961

In this note compiling routines will be described for Boolean expressions involving the operators V, / ~ and -1, which will then be used in describing proeedures for compiling conditional statements and Boolean assignment statements as defined in AL(mL 60).

### A comment on index register allocation

- EconomicsCACM
- 1967

A technique is presented to reduce the enumeration required by o known procedure for optimal index register allocation in straight-line programs. This technique is based on the construction of a link…

### Object code optimization

- Computer ScienceCACM
- 1969

Methods of analyzing the control flow and data flow of programs during compilation are applied to transforming the program to improve object time efficiency and implementation of these and other optimizations in OS/360 FORTRAN H are described.

### Global common subexpression elimination

- Computer ScienceSymposium on Compiler Optimization
- 1970

The reasons why optimization is required seem to me to fall in two major categories; the first I will call “local” and the second “global”.

### Compiler Assignment of Data Items to Registers

- Computer ScienceIBM Syst. J.
- 1970

Three algorithms are described for obtaining feasible solutions to the many-one and many-few global assignment problems, one of which appears to be sufficiently fast for inclusion in an optimizing compiler.