ABSTRACT
A technique is presented for global analysis of program structure in order to perform compile time optimization of object code generated for expressions. The global expression optimization presented includes constant propagation, common subexpression elimination, elimination of redundant register load operations, and live expression analysis. 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. Several optimizing functions are defined which, when used in conjunction with the flow analysis algorithm, provide the various forms of code optimization. The flow analysis algorithm is sufficiently general that additional functions can easily be defined for other forms of global code optimization.
- Aho, A., Sethi, R., and Ullman, J. A formal approach to code optimization. Proceedings of a Symposium on Compiler Optimization. University of Illinois at Urbana-Champaign, July, 1970. Google ScholarDigital Library
- Allen, F. Program optimization. In Annual Review in Automatic Programming, Pergamon Press, 5(1969), 239-307.Google Scholar
- ____ A basis for program optimization. IFIP Congress 71, Ljubljana, August, 1971, 64-68.Google Scholar
- ____ Control flow analysis. Proceedings of a Symposium on Compiler Optimization, University of Illinois at Urbana-Champaign, July, 1970. Google ScholarDigital Library
- Anderson, J. A note on some compiling algorithms. Comm. ACM 7, 3 (March 1964), 149-150. Google ScholarDigital Library
- Arden, B. Galler, B., and Graham, R. An algorithm for translating boolean expressions. Jour. ACM 9, 2(April 1962), 222-239. Google ScholarDigital Library
- Bachmann, P. A contribution to the problem of the optimization of programs. IFIP Congress 71, Ljubljana, August, 1971, 74-78.Google Scholar
- Ballard, A., and Tsichritzis, D. Transformations of programs. IFIP Congress 71, Ljubljana, August, 1971, 89-93.Google Scholar
- Breuer, M. Generation of optimal code for expressions via factorization. Comm. ACM 12, 6(June 1970), 333-340. Google ScholarDigital Library
- Busam, V., and Englund, D. Optimization of expressions in FORTRAN. Comm. ACM 12, 12(Dec. 1969), 666-674. Google ScholarDigital Library
- Cocke, J. Global common subexpression elimination. Proceedings of a Sybposium on Compiler Optimization. University of Illinois at Urbana-Champaign, July, 1970. Google ScholarDigital Library
- ____, and Miller, R. Some analysis techniques for optimizing computer programs. Proc. Second International Conference of System Sciences, Hawaii, January, 1969, 143-146.Google Scholar
- ____, and Schwartz, J. Programming Languages and Their Compilers: Preliminary Notes. Courant Institute of Mathematical Sciences, New York University, 1970. Google ScholarDigital Library
- Day, W. Compiler assignment of data items to registers. IBM Systems Journal, 8, 4(1970), 281-317.Google Scholar
- Earnest, C., Balke, K., and Anderson, J. Analysis of graphs by ordering nodes. Jour. ACM 19, 1(Jan. 1972), 23-42. Google ScholarDigital Library
- Elson, M., and Rake, S. Code generation technique for large language compilers. IBM Systems Journal 3(1970), 166-188.Google ScholarDigital Library
- Fateman, R. Optimal code for serial and parallel computation. Comm. ACM 12, 12(Dec. 1969), 694-695. Google ScholarDigital Library
- Finkelstein, M. A compiler optimization technique. The Computer Review (Feb. 1968), 22-25.Google Scholar
- Floyd, R. An algorithm for coding efficient arithmetic operations. Comm. ACM 4, 1(Jan. 1961), 42-51. Google ScholarDigital Library
- Frailey, D. Expression Optimization using unary complement operators. Proceedings of a Symposium on Compiler Optimization, University of Illinois at Urbana-Champaign, July, 1970. Google ScholarDigital Library
- ____, A study of optimization using a general purpose optimizer. (PhD Thesis) Purdue University, Lafayette, Ind., January 1971. Google ScholarDigital Library
- Freiburghouse, R. The MULTICS PL/I compiler. AFIPS Conf. Proc. FJCC (1969), 187-199.Google Scholar
- Gear, C. High speed compilation of efficient object code. Comm. ACM 8, 8(Aug. 1965), 483-488. Google ScholarDigital Library
- Gries, D. Compiler Construction for Digital Computers. John Wiley and Sons, Inc., New York, 1971. Google ScholarDigital Library
- Hill, V., Langmaack, H., Schwartz, H., and Seegumuller, G. Efficient handling of subscripted variables in ALGOL-60 compilers. Proc. Symbolic Languages in Data Processing, Gordon and Breach, New York, 1962, 331-340.Google Scholar
- Hopkins, M. An optimizing compiler design. IFIP Congress 71, Ljubljana, August, 1971, 69-73.Google Scholar
- Horowitz, L., Karp, R., Miller, R., and Winograd, S. Index register allocation. Jour. ACM 13, 1(Jan. 1966), 43-61. Google ScholarDigital Library
- Huskey, H., and Wattenberg, W. Compiling techniques for boolean expressions and conditional statements in ALGOL-60. Comm. ACM 4, 1(Jan. 1961), 70-75. Google ScholarDigital Library
- Huskey, H. Compiling techniques for algebraic expressions. Computer Journal 4, 4(April 1961), 10-19.Google ScholarCross Ref
- Huxtable, D. On writing an optimizing translator for ALGOL-60. In Introduction to System Programming, Academic Press, Inc., New York, 1964.Google Scholar
- IBM System/360 Operating System, FORTRAN IV (G and H) Programmer's Guide. c28-6817-1, International Business Machines, 1967, 174-179.Google Scholar
- Kennedy, K. A global flow analysis algorithm. Intern. J. of Computer Mathematics, Section A, Vol. 3, 1971, 5-15.Google Scholar
- Kildall, G. Global expression optimization during compilation. Technical Report No. TR# 72-06-02, University of Washington Computer Science Group, University of Washington, Seattle, Washington, June, 1972.Google Scholar
- ____ A code synthesis filter for basic block optimization. Technical Report No. TR# 72-01-01, University of Washington Computer Science Group, University of Washington, Seattle, Washington, January, 1972.Google Scholar
- Lowry, E., and Medlock, C. Object code optimization. Comm. ACM 12, 1(Jan. 1969), 13-22. Google ScholarDigital Library
- Luccio, F. A comment on index register allocation. Comm. ACM 10,9 (Sept. 1967), 572-572-574. Google ScholarDigital Library
- Maurer, W. Programming-An Introduction to Computer Language Technique. Holden-Day, San Francisco, 1968, 202-203.Google ScholarDigital Library
- McKeeman, W. Peephole optimization. Comm. ACM 8, 7(July 1965), 443-444. Google ScholarDigital Library
- Nakata, I. On compiling algorithms for arithmetic expressions. Comm. ACM 19, 8(Aug. 1967), 492-494. Google ScholarDigital Library
- Nievergelt, J. On the automatic simplification of computer programs. Comm. ACM 8, 6(June 1965), 366-370. Google ScholarDigital Library
- Painter, J. Compiler effectiveness. Proceedings of a Symposium on Compiler Optimization, University of Illinois at Urbana-Champaign, July, 1970.Google Scholar
- Randell, B., and Russell, L. ALGOL 60 Implementation. Academic Press, Inc., New York, 1964. Google ScholarDigital Library
- Redziejowski, R. On arithmetic expressions and trees. Comm. ACM 12, 2(Feb. 1969), 81-84. Google ScholarDigital Library
- Ryan, J. A direction-independent algorithm for determining the forward and backward compute points for a term or subscript during compilation. Computer Journal 9, 2(Aug. 1966), 157-160.Google ScholarCross Ref
- Schnieder, V. On the number of registers needed to evaluate arithmetic expressions. BIT 11(1971), 84-93.Google ScholarCross Ref
- Sethi, R., and Ullman, J. The generation of optimal code for arithmetic expressions. Jour. ACM 17, 4(Oct. 1970), 715-728. Google ScholarDigital Library
- Wagner, R. Some techniques for algebraic optimization with application to matrix arithmetic expressions. Thesis, Carnegie-Mellon University, June, 1968. Google ScholarDigital Library
- Yershov, A. On programming of arithmetic operations. Comm. ACM 1, 8(Aug. 1958), 3-6. Google ScholarDigital Library
- ____ ALPHA-an automatic programming system of high efficiency. Jour. ACM 13, 1(Jan. 1966), 17-24. Google ScholarDigital Library
- A unified approach to global program optimization
Recommendations
An enhanced particle swarm optimization with levy flight for global optimization
Enhanced PSO with levy flight.Random walk of the particles.High convergence rate.Provides solution accuracy and robust. Hüseyin Haklı and Harun Uguz (2014) proposed a novel approach for global function optimization using particle swarm optimization with ...
Gravity-based particle swarm optimization with hybrid cooperative swarm approach for global optimization
Premature convergence has been recognized as one of the major drawbacks of particle swarm optimization PSO algorithms. In particular, the lack of diversity in PSO performance is an essential cause that commonly results in high susceptibility to ...
Non-parametric particle swarm optimization for global optimization
Proposing an improved PSO scheme called non-parametric particle swarm optimization (NP-PSO).Combining local and global topologies with two quadratic interpolation operations to increase the search ability in NP-PSO.Removing PSO parameters in the ...
Comments