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,
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- P. T. Devanbu. Genoa: a customizable language- and front-end Independent code analyzer. In International conference on Software engineering, 1992. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- R. Hundt. Hp caliper. In Workshop on Industrial Experiences with Systems Software, 2000.Google Scholar
- S. J. The cscope program. In Berkley UNLX Release 3.2, 1981.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- W. Opdyke. Refactoring object-oriented frameworks. In PhD Thesis, University of Illinois at Urbana-Champaign, 1999. Google Scholar
Digital Library
- S. Paul and A. Prakash. Supporting queries on source code: A formal framework. In International Journal of Software Engineering and Knowledge Engineering, 1994.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- F. S. Make - a program for maintaining computer programs. In Software Practice and Experience, 9(3):255--265, 1979.Google Scholar
- 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 Scholar
Digital Library
- Schwanke, R. W. and Kaiser, G. E. 1988. Smarter recompilation. ACM Trans. Program. Lang. Syst. 10, 4 (Oct. 1988), 627--632. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
(auto-classified)TRICK: tracking and reusing compiler's knowledge
Recommendations
Modeling code manipulation in JIT compilers
SOAP 2022: Proceedings of the 11th ACM SIGPLAN International Workshop on the State Of the Art in Program AnalysisJust-in-Time (JIT) compilers are widely used to improve the performance of interpreter-based language implementations by creating optimized code at runtime. However, bugs in the JIT compiler’s code manipulation and optimization can result in the ...
Semantics of programming languages
A semantic specification of a programming language can be relevant for programmers to understand software written in the language, as well as for the implementers of a language to understand the intentions of its designers. In the early 1980s, Jan ...
Exploration of modularity and reusability of domain-specific languages
Features for creating modular and reusable domain-specific languages are presented.These features are illustrated with a non-trivial expression DSL in MetaMod.A comparison between the implementation in MetaMod and in Jetbrains MPS is shown.The ...






Comments