USENIX Windows NT Workshop, 1997
Spike: An Optimizer for Alpha/NT Executables
Robert Cohn, David Goodwin, P. Geoffrey Lowney, and Norman Rubin
Digital Equipment Corporation
Abstract
Spike is a profile-directed optimizer for Alpha/NT executables that is actively being used to optimize shipping
products. Spike consists of the Spike Optimization Environment (SOE) and the Spike Optimizer. Through both a
graphical interface and a command-line interface, the Spike Optimization Environment provides a simple means
to instrument and optimize large applications consisting of many images. SOE manages the instrumented and
optimized images as well as any profile information collected for those images, freeing the user from many
tedious and error-prone tasks typically associated with profile-directed optimization. SOE also simplifies the
collection of profile information with Transparent Application Substitution (TAS). With TAS, the user invokes
the original version of the application and the instrumented or optimized version of the application is
transparently executed in its. SOE uses the Spike Optimizer to optimize images. The Spike Optimizer performs
code layout to improve instruction cache behavior [Pettis90], hot cold optimization [Cohn96] and register
allocation. The optimizations are targeted at large call-intensive applications, where loops span multiple routines,
and each routine contains complex control-flow. For this class of applications, Spike provides significant
performance improvement, reducing execution time by as much as 20%.
- View the full text of this paper in
HTML form and
PDF form.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|