skip to main content
10.1145/800229.806974acmconferencesArticle/Chapter ViewAbstractPublication PagesplanConference Proceedingsconference-collections
Article
Free Access

The design of a global optimizer

Authors Info & Claims
Published:01 August 1979Publication History

ABSTRACT

We are constructing a compiler for a high level systems and applications programming language. Because the compiler is required to generate efficient object code, a global optimization phase and register allocation phase are an integral part of the design. It was determined that the familiar optimizations of code motion, redundant expression elimination, and dead code removal would be sufficient.

The optimizer design was to be based on the most recent applicable theoretical results, yet simple and straightforward to implement. Traditional approaches were considered inadequate because they assume a primitive intermediate code representation (quadruples), elaborate flow graph constructions, and numerous special cases. High level data flow analysis as proposed by Rosen [1,2] provided the framework we sought. Using his approach, the parse tree of the program, with its high level control structures intact, becomes a suitable intermediate representation. Complex statement structures are analyzed quickly in two tree traversals to determine the solutions to data flow problems.

References

  1. 1.Rosen, Barry K., "High-Level Data Flow Analysis," CACM 20, 10/77, 712-24. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.Rosen, Barry K., "monoids for Rapid Data Flow Analysis," IBM Res. Rep. RC 7032, 3/78. IBM T. J. Watson Res. Cr., Yorktown Heights, New York.Google ScholarGoogle Scholar
  3. 3.Aho, Alfred V., and Ullman, J. D., Principles of Compiler Design, Addison-Wesley, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Morel, E. and Renvoise, C., "Global Optimization by Suppression of Partial Redundancies," CACM 22 2/79 96-103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.Schwartz, J. T., "On Programming: an Interim Report on the SETL Project," Second Edition, Courant Institute of Mathematical Sciences, New York University, New York, New York, 1975.Google ScholarGoogle Scholar
  6. 6.Schwartz, J. T., and Sharir, M., "Design of Optimizations of the Bit-Vectoring Class," Courant Institute of Mathematical Sciences, New York University, New York, New York, Technical Report to appear.Google ScholarGoogle Scholar

Index Terms

  1. The design of a global optimizer

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          SIGPLAN '79: Proceedings of the 1979 SIGPLAN symposium on Compiler construction
          August 1979
          241 pages
          ISBN:0897910028
          DOI:10.1145/800229
          • cover image ACM SIGPLAN Notices
            ACM SIGPLAN Notices  Volume 14, Issue 8
            Proceedings of the 1979 SIGPLAN symposium on Compiler construction
            August 1979
            234 pages
            ISSN:0362-1340
            EISSN:1558-1160
            DOI:10.1145/872732
            Issue’s Table of Contents

          Copyright © 1979 Authors

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 August 1979

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader