Annotation-directed run-time specialization in C

  • Authors:
  • Brian Grant;Markus Mock;Matthai Philipose;Craig Chambers;Susan J. Eggers

  • Affiliations:
  • Department of Computer Science and Engineering, University of Washington;Department of Computer Science and Engineering, University of Washington;Department of Computer Science and Engineering, University of Washington;Department of Computer Science and Engineering, University of Washington;Department of Computer Science and Engineering, University of Washington

  • Venue:
  • PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
  • Year:
  • 1997

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present the design of a dynamic compilation system for C. Directed by a few declarative user annotations specifying where and on what dynamic compilation is to take place, a binding time analysis computes the set of run-time constants at each program point in each annotated procedure's control flow graph; the analysis supports program-point-specific polyvariant division and specialization. The analysis results guide the construction of a specialized run-time specializer for each dynamically compiled region; the specializer supports various caching strategies for managing dynamically generated code and supports mixes of speculative and demand-driven specialization of dynamic branch successors. Most of the key cost/benefit trade-offs in the binding time analysis and the run-time specialize are open to user control through declarative policy annotations. Our design is being implemented in the context of art existing optimizing compiler.