skip to main content
article

TRICK: tracking and reusing compiler's knowledge

Published:01 December 2006Publication History
Skip Abstract Section

Abstract

Compilers, during compilation, analyze the application being compiled and build up extensive knowledge about the program. This knowledge is essential for the compiler to produce correct object code. Though some part of this knowledge is retained in the generated object files as symbol table information to be used by the linker and/or debugger, most of it is discarded after the compilation is done. In this paper, we introduce the TRICK framework, which is an attempt to retain and reuse this internal information generated by the compiler as part of its program analysis, in building new tools or enhancing existing tools as well for reuse by the compiler for continuous program optimization. We present examples of how development and maintenance of various program analysis tools can be simplified by using the TRICK framework describing tools developed by our group as well as how TRICK framework can be employed in continuous program optimization by the compiler. TRICK framework can be part of both static and dynamic compilation system, though our current usage model is in the context of a static compilation system,

References

  1. Method and system for optimizing compilation time of a program by selectively reusing object code. US Patent Office Application Number 10/017,572, 2001.Google ScholarGoogle Scholar
  2. Agrawal, H. 1999. Efficient coverage testing using global dominator graphs. In Proceedings of the 1999 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering (Toulouse, France, September 06 -- 06, 1999). PASTE '99. ACM Press, New York, NY, 11--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Harold W. Cain, Barton P. Miller, and Brain J. N. Wylie. A Call graph-Based Search Strategy for Automated Performance Diagnosis. Technical report, Computer Science Department, University of Wisconsin-Madison, Dayton Street, Madison, WI 53706-1685, USA, February 2000.Google ScholarGoogle Scholar
  4. P. T. Devanbu. Genoa: a customizable language- and front-end Independent code analyzer. In International conference on Software engineering, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Engler, D. and Ashcraft, K. 2003. RacerX: effective, static detection of race conditions and deadlocks. In Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles (Bolton Landing, NY, USA, October 19 -- 22, 2003). SOSP '03. ACM Press, New York, NY, 237--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Goguen, J. Thatcher, and E. Wagner. An initial algebra approach to the specification, correctness and implementation of abstract data types. In Current Trends in Programming Methodology, Vol 4, chapter 5, Prentice Hall, 1978.Google ScholarGoogle Scholar
  7. R. Hundt. Hp caliper. In Workshop on Industrial Experiences with Systems Software, 2000.Google ScholarGoogle Scholar
  8. S. J. The cscope program. In Berkley UNLX Release 3.2, 1981.Google ScholarGoogle Scholar
  9. McFarling, S. 2003. Reality-based optimization. In Proceedings of the international Symposium on Code Generation and Optimization: Feedback-Directed and Runtime Optimization (San Francisco, California, March 23 -- 26, 2003). ACM International Conference Proceeding Series, vol. 37. IEEE Computer Society, Washington, DC, 59--68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. McFarling, S. and Hennesey, J. 1986. Reducing the cost of branches. In Proceedings of the 13th Annual international Symposium on Computer Architecture (Tokyo, Japan, June 02 -- 05, 1986). International Conference on Computer Architecture. IEEE Computer Society Press, Los Alamitos, CA, 396--403. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. W. Opdyke. Refactoring object-oriented frameworks. In PhD Thesis, University of Illinois at Urbana-Champaign, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Paul and A. Prakash. Supporting queries on source code: A formal framework. In International Journal of Software Engineering and Knowledge Engineering, 1994.Google ScholarGoogle ScholarCross RefCross Ref
  13. Pettis, K. and Hansen, R. C. 1990. Profile guided code positioning. In Proceedings of the ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation (White Plains, New York, United States). PLDI '90. ACM Press, New York, NY, 16--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. F. S. Make - a program for maintaining computer programs. In Software Practice and Experience, 9(3):255--265, 1979.Google ScholarGoogle Scholar
  15. W. J. Schmidt, R. R. Roediger, C. S. Mestad, B. Mendelson, and I. Shavit-Lottem. Profile-directed restructuring of operating system code. In IBM Systems Journal - 37--2, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Schwanke, R. W. and Kaiser, G. E. 1988. Smarter recompilation. ACM Trans. Program. Lang. Syst. 10, 4 (Oct. 1988), 627--632. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Tichy, W. F. and Baker, M. C. 1985. Smart recompilation. In Proceedings of the 12th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (New Orleans, Louisiana, United States, January 14 -- 16, 1985). POPL '85. ACM Press, New York, NY. 236--244. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Shao, Z. and Appel, A. W. 1993. Smartest recompilation. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Charleston, South Carolina, United States). POPL '93. ACM Press, New York, NY, 439--450. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

(auto-classified)
  1. TRICK: tracking and reusing compiler's knowledge

    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

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 41, Issue 12
      December 2006
      43 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1229493
      Issue’s Table of Contents

      Copyright © 2006 Authors

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 December 2006

      Check for updates

      Qualifiers

      • article
    • Article Metrics

      • Downloads (Last 12 months)2
      • Downloads (Last 6 weeks)1

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!