Partial Evaluation of Machine Code

Venkatesh Srinivasan and Thomas Reps†,‡
University of Wisconsin
GrammaTech, Inc.

This paper presents an algorithm for off-line partial evaluation of machine code. The algorithm follows the classical two-phase approach of binding-time analysis (BTA) followed by specialization. However, machine-code partial evaluation presents a number of new challenges, and it was necessary to devise new techniques for use in each phase.

Our experiments show that our algorithm can be used to specialize binaries with respect to commonly used inputs to produce faster binaries, as well as to extract an executable component from a bloated binary.

(Click here to access the paper: conference version; extended version.)