Annotation-Directed Run-Time Specialization in C

B. Grant, M. Mock, M. Philipose, C. Chambers, and S.J. Eggers.

Department of Computer Science and Engineering
University of Washington

In the proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM), June 1997.

ACM's Copyright Policy.

  • PostScript (255kB)
  • Compressed PostScript (compress, 105kB)
  • Compressed PostScript (gzip, 76kB)
  • PDF (105kB)
  • To save the paper to a file using Netscape Navigator, right click on one of the links at the left and select "Save Link As..."


    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 specializer are open to user control through declarative policy annotations. Our design is being implemented in the context of an existing optimizing compiler.

    Last updated June 17, 1997.
    Brian Grant (