Fast, Effective Dynamic Compilation Susan Eggers Dynamic compilation enables constant-based optimizations on the values of invariant data computed at run-time. Using the values of these run-time constants, a dynamic compiler can eliminate their memory loads, perform constant propagation and folding, remove branches they determine, and fully unroll loops they bound, all at run-time. However, the performance benefits of the more efficient, dynamically-compiled code are offset by the run-time cost of the dynamic compile. Our approach to dynamic compilation strives for both fast dynamic compilation and high-quality dynamically-compiled code: the programmer annotates regions of the programs that should be compiled dynamically; a static optimizing compiler automatically produces machine-code templates that have been pre-optimized by an analysis that identifies which variables will be constant at run-time; and a simple, dynamic compiler copies the templates, patching in the computed values of the run-time constants, to produce optimized, executable code. Our work targets general-purpose, imperative programming languages, initially C. Initial experiments applying dynamic compilation to two C programs have produced speed-ups over statically-compiled versions of 1.6 and 1.9. In this talk I will describe our current dynmamic compilation framework, and outline the direction of our future work.