skip to main content
10.1145/782814.782824acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
Article

A framework for incremental extensible compiler construction

Published:23 June 2003Publication History

ABSTRACT

Much of the research in compiler design and optimization has traditionally focused on the effectiveness and efficiency of code optimization. However, the subject of efficiency of the entire compilation process itself (as opposed to the complexity of individual analysis or optimization algorithms) remains a highly complex and less investigated topic. In this paper we present a global approach to extensible and efficient compiler design, which aims at also improving the effectiveness and efficiency of analysis and optimization capabilities. Extensibility in complex compiler systems goes well beyond modularity of design and it needs to be considered from the early stages of the design, especially the design of the Intermediate Representation (IR). One of the primary barriers to compiler pass extensibility and modularity is interference between passes caused by transformations that invalidate existing analysis information. In this paper we also present a callback system which is provided to automatically track changes to the compiler's internal representation (IR) allowing full pass reordering and an easy-to-use interface for developing lazy update incremental analysis passes. We present a new algorithm for incremental interprocedural data flow analysis and demonstrate the benefits of our design framework and our prototype compiler system. It is shown that compilation time for multiple data flow analysis algorithms can be cut in half by incrementally updating data flow analysis. Our quantitative performance analysis is based on well-known benchmarks instead of random graphs like previous works. For smaller optimizations, order of magnitude improvements have been demonstrated. Our approach also simplifies design and implementation and hides many of the intricacies of a compiler's internal structures from the developer.

References

  1. Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. G. Burke and B. G. Ryder. A critical analysis of incremental iterative data flow analysis algorithms. IEEE Transactions on Software Engineering, 16(7):723--728, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Alan Carle and Lori Pollock. Modular specification of incremental program transformation systems. In Proceedings of the 11th International Conference on Software Engineering, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Carroll and B. Ryder. Incremental data flow update via attribute and dominator updates. In ACM SIGPLAN-SIGACT Symposium on the Principles of Programming Languages, pages 274--284. ACM Press, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M.D. Carroll and B.G. Ryder. Incremental data flow analysis via dominator and attribute update. In Proceedings of the Conference on Principles of Programming Languages, NY, 1997. IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Milind Girkar and Constantine~D. Polychronopoulos. The hierarchical task graph as a universal intermediate representation. International Journal of Parallel Programming, 22(5):519--551, October 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Larry G. Jones. Efficient evaluation of circular attribute grammars. ACM Transactions on Programming Languages and Systems (TOPLAS), 12(3):429--462, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Marlowe and B. Ryder. Hybrid incremental alias algorithms. In Proceedings of the Twentyfourth Hawaii International Conference on System Sciences, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  9. Lori L. Pollock and Mary~Lou Soffa. Incremental global reoptimization of programs. ACM Transactions on Programming Languages and Systems, 14(2):173--200, April 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C. Polychronopoulos. The promis compiler web page. http://promis.csrd.uiuc.edu/.Google ScholarGoogle Scholar
  11. The GNU Project. Gcc releases. http://www.gnu.org/software/gcc/releases.html.Google ScholarGoogle Scholar
  12. The National Compiler Infrastructure Project. The national compiler infrastructure project. http://www-suif.stanford.edu/suif/NCI, January 1998. Also at http://www.cs.virginia.edu/nci.Google ScholarGoogle Scholar
  13. G. Ramalingam and Thomas Reps. A categorized bibliography on incremental computation. In Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina, pages 502--510, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. Reps, T. Teitelbaum, and A. Demers. Incremental context-dependent analysis for language-based editors. ACM Transactions on Programming Languages and Systems, 5(3):449--477, July 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. B. G. Ryder, W. Landi, and H. D. Pande. Profiling an incremental data flow analysis algorithm. IEEE Transactions on Software Engineering, 16(2):129--140, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Barbara G. Ryder and Marvin C. Paull. Incremental data-flow analysis algorithms. ACM Transactions on Programming Languages and Systems, 10(1):1--50, January 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. H. Saito, N. Stavrakos, S. Carroll, and C. Polychronopoulos. The design of the PROMIS compiler. Compiler Construction Conference, Lecture Notes in Computer Science, 1575:214--228, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Soroker, M. Karasick, J. Barton, and D. Streeter. Extension mechanisms in montana. In Proceedings of the 8th IEEE Israeli Conference on Software and Systems, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Vugranam~C. Sreedhar, Guang~R. Gao, and Yong-Fong Lee. A new framework for exhaustive and incremental data flow analysis using DJ graphs. In SIGPLAN Conference on Programming Language Design and Implementation, pages 278--290, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. S. Sundaresh and P. Hudak. Incremental computation via partial evaluation. In Eighteenth Annual ACM Symposium on Principles of Programming Languages, Orlando, Florida, pages 1--13. New York: ACM, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Zhiquiang Tan and Karen A. Lemone. A research environment for incremental data flow analysis. In Proceedings of the 1985 ACM thirteenth annual conference on Computer Science, pages 356--362, NY, 1985. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. Wilson, R. French, C. Wilson, S. Amarasinghe, J. Anderson, S. Tjiang, S. Liao, C. Tseng, M. Hall, M. Lam, and J. Hennessy. The SUIF compiler system: a parallelizing and optimizing research compiler. Technical Report CSL-TR-94-620, Stanford University, May 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Jyh-Shiarn Yur, Barbara G. Ryder, and William Landi. An incremental flow- and context-sensitive pointer aliasing analysis. In Proceedings of the 21st International Conference on Software Engineering (ICSE-99), pages 442--452, NY, May 16--22 1999. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A framework for incremental extensible compiler construction

      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
        ICS '03: Proceedings of the 17th annual international conference on Supercomputing
        June 2003
        380 pages
        ISBN:1581137338
        DOI:10.1145/782814

        Copyright © 2003 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 23 June 2003

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        ICS '03 Paper Acceptance Rate36of171submissions,21%Overall Acceptance Rate584of2,055submissions,28%

        Upcoming Conference

        ICS '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader