Communications of the ACM
On compiling algorithms for arithmetic expressions
Communications of the ACM
On the automatic simplification of computer programs
Communications of the ACM
High speed compilation of efficient object code
Communications of the ACM
Some Topics in Code Optimization
Journal of the ACM (JACM)
Communications of the ACM
Register allocation via usage counts
Communications of the ACM
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
An interactive program advising system
SIGCSE '76 Proceedings of the ACM SIGCSE-SIGCUE technical symposium on Computer science and education
Complete register allocation problems
STOC '73 Proceedings of the fifth annual ACM symposium on Theory of computing
Transformations on straight line programs - (Preliminary Version)
STOC '70 Proceedings of the second annual ACM symposium on Theory of computing
A survey of compiler optimization techniques
ACM '73 Proceedings of the ACM annual conference
The optimization of user programs for an Algebraic Manipulation System
SYMSAC '81 Proceedings of the fourth ACM symposium on Symbolic and algebraic computation
Proceedings of a symposium on Compiler optimization
Proceedings of a symposium on Compiler optimization
Expression optimization using unary complement operators
Proceedings of a symposium on Compiler optimization
A formal approach to code optimization
Proceedings of a symposium on Compiler optimization
ACM SIGPLAN Notices - Abstracts in programming language-related research
Efficient evaluation of array subscripts of arrays
IBM Journal of Research and Development
Hi-index | 48.25 |
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 the branching and DO loop structure of the program.The objectives of the processing are (1) to eliminate redundant calculations when references are made to common sub-expression values, (2) to remove invariant calculations from DO loops, (3) to efficiently compute subscripts containing DO iteration variables, and (4) to provide efficient index register usage.The method presented requires at least a three-pass compiler, the second of which is scanned backward. It has been used in the development of several FORTRAN compilers that have proved to produce excellent object code without significantly reducing the compilation speed.