ABSTRACT
This paper describes an intermediate language to be generated by a syntax analyzer and processed by a code generator. An (essentially) optional code optimization phase may be used before code generation. The language is designed to exclude source and target dependencies (these are specified in a set of auxiliary tables) and has been used to implement a general purpose code optimization module. This module has been incorporated into compilers for several source languages and has resulted in production-quality target code.
The paper focuses on the features of the language and reviews the optimizations for which it has been designed. A major benefit of this approach has been to isolate many of the characteristics which lead to code optimization opportunities. Of particular note are numerous facts which can be gathered in a target-independent manner, even though their utilization will depend on the details of the target machine.
- 1.Allen, Frances E., "Program Optimization" in Annual Review in Automatic Programming, ed. Mark I. Halpern and Christopher J. Shaw. Vol. V. Oxford: Pergamon Press, 1969, 239-307.Google Scholar
- 2.Bagwell, Jr., John T., "Local Optimizations," ACM SIGPLAN Notices, V (July, 1970) (Proceedings of Symposium on Compiler Optimization), 52-66. Google ScholarDigital Library
- 3.Cocke, John, and J. T. Schwartz, Programming Languages and Their Compilers, Preliminary Notes, 2nd revised edition. Courant Institute of Mathematical Sciences, New York University, 1969. Google ScholarDigital Library
- 4.Earnest, C. P., "Some Topics in Code Optimization," Computer Sciences Corporation, 1969.Google Scholar
- 5.Frailey, Dennis J., "Expression Optimization Using Unary Complement Operators," ACM SIGPLAN Notices, V (July, 1970) (Proceedings of Symposium on Compiler Optimization), 67-89. (Also see minor corrections to above paper in August, 1970 issue of ACM SIGPLAN Notices, 6-7.) Google ScholarDigital Library
- 6.Frailey, Dennis J., A Study of Code Optimization Using a General Purpose Optimizer, Ph. D Dissertation, Purdue University, West Lafayette, Indiana, 1971. Google ScholarDigital Library
- 7.Halstead, Maurice, "Machine Independence and Third Generation Computers" in Proceedings of the Fall Joint Computer Conference. Washington: Thompson Books, 1967, 587-592.Google Scholar
- 8.Laurance, Neal, "A Compiler Language for Data Structures" in Proceedings of the 23rd ACM National Conference. Princeton: Brandon/Systems Press, Inc., 1968, 387-394. Google ScholarDigital Library
- 9.Lowrey, Edward S., and C. W. Medlock, "Object Code Optimization," Communications of the ACM, XII (January, 1969), 13-22. Google ScholarDigital Library
- 10.Mendicino, Sam F., et. al., "The LRLTRAN Compiler," Communications of the ACM, XI (November, 1968), 747-755. Google ScholarDigital Library
- 11.Rustin, Randall (ed.), Design and Optimization of Compilers. Englewood Cliffs, N. J.: Prentice Hall, 1972.Google Scholar
- 12.Tarjan, Robert E., "Complexity of Combinatorial Algorithms," SIAM Review, XX (July, 1978), 457-491.Google ScholarCross Ref
Index Terms
- An intermediate language for source and target independent code optimization
Recommendations
An intermediate language for source and target independent code optimization
Proceedings of the 1979 SIGPLAN symposium on Compiler constructionThis paper describes an intermediate language to be generated by a syntax analyzer and processed by a code generator. An (essentially) optional code optimization phase may be used before code generation. The language is designed to exclude source and ...
Comments