Analysis of Graphs by Ordering of Nodes
Journal of the ACM (JACM)
A mathematical theory of global program optimization (Prentice-Hall series in automatic computation)
A mathematical theory of global program optimization (Prentice-Hall series in automatic computation)
Global value numbers and redundant computations
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Beyond induction variables: detecting and classifying sequences using a demand-driven SSA form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program Improvement by Source-to-Source Transformation
Journal of the ACM (JACM)
Program Transformation Systems
ACM Computing Surveys (CSUR)
Symbolic evaluation and the global value graph
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Simple Generation of Static Single-Assignment Form
CC '00 Proceedings of the 9th International Conference on Compiler Construction
The optimization of user programs for an Algebraic Manipulation System
SYMSAC '81 Proceedings of the fourth ACM symposium on Symbolic and algebraic computation
The ILLIAC IV FORTRAN compiler
Proceedings of the conference on Programming languages and compilers for parallel and vector machines
Program improvement by source to source transformation
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
Hi-index | 0.00 |
The conventional program optimization techniques employed by the ILLIAC FORTRAN compiler are general purpose, effective, and efficient. The underlying theory is applicable to FORTRAN and to other high level languages. A unique approach to the gathering of global set and use information about variables as well as careful software engineering of the algorithms has led to the construction of an effective source-to-source optimizer which performs constant propagation, constant computation, common subexpression elimination, reduction in strength, and invariant code motion. We will first consider the type of information which must be gathered about a program, and how this information is used to perform optimization. Then we shall state the algorithm for globally computing the set and use information for program variables. Having discussed the science of optimization we shall turn to the engineering aspects and consider such topics as representation of programs, order of optimization transformations, and efficient computation of global use and set information.