Abstract:
We describe the design and implementation of Dynamo, a software dynamic optimization system that is capable of transparently improving the performance of a native instruction stream as it executes on the processor. The input native instruction stream to Dynamo can be dynamically generated (by a JIT for example), or it can come from the execution of a statically compiled native binary. This paper evaluates the Dynamo system in the latter, more challenging situation, in order to emphasize the limits, rather than the potential, of the system. Our experiments demonstrate that even statically optimized native binaries can be accelerated Dynamo, and often by a significant degree. For example, the average performance of --O optimized SpecInt95 benchmark binaries created by the HP product C compiler is improved to a level comparable to their --O4 optimized version running without Dynamo. Dynamo achieves this by focusing its efforts on optimization opportunities that tend to manifest only at ru...
Citations
|
257
|
Trace cache: A low latency approach to high bandwidth instruction fetching
– Rotenberg, Bennett, et al.
- 1996
|
|
203
|
Efficient path profiling
– Ball, Larus
- 1996
|
|
202
|
Efficient implementation of the Smalltalk-80 system
– Deutsch, Schiffman
- 1984
|
|
185
|
Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language
– Chambers, Ungar
- 1989
|
|
183
|
A General Approach for Run-Time Specialization and its Application to C
– Consel, Nol
- 1996
|
|
159
|
Daisy: Dynamic compilation for 100% architectural compatibility
– Ebcioglu, Altman
- 1996
|
|
147
|
Predicting Conditional Branch Directions from Previous Runs of a Program
– Fisher, Freudenberger
- 1992
|
|
144
|
Optimizing ML with run-time code generation
– Lee, Leone
- 1996
|
|
129
|
Embra: fast and flexible machine simulation
– Witchel, Rosenblum
- 1996
|
|
108
|
vcode: A retargetable, extensible, very fast dynamic code generation system
– Engler
- 1996
|
|
83
|
An evaluation of staged run-time optimizations in dyc
– Grant, Philipose, et al.
- 1999
|
|
81
|
Multi-way versus One-way Constraints in User Interfaces: Experience with the DeltaBlue Algorithm
– Sannella, Freeman-Benson, et al.
- 1992
|
|
58
|
FX!32: A profile-directed binary translator
– Chernoff, Herdeg, et al.
- 1998
|
|
58
|
tcc: a system for fast, flexible, and high-level dynamic code generation
– Poletto, Engler, et al.
- 1997
|
|
53
|
Talisman: Fast and Accurate Multicomputer Simulation
– Bedichek
- 1995
|
|
52
|
The 21264: A Superscalar Alpha Processor with Out-ofOrder Execution
– Keller
- 1996
|
|
52
|
Tuning the Pentium Pro Microarchitecture
– Papworth
- 1996
|
|
51
|
The superblock: An effective structure for vliw and superscalar compilation
– Hwu, Mahlke, et al.
- 1992
|
|
48
|
Shade: A fast instruction set simulator for execution profiling
– Cmelik, Keppel
- 1993
|
|
45
|
Transparent Dynamic Optimization: The Design and Implementation of Dynamo,” Hewlett Packard Laboratories
– Bala, Duesterwald, et al.
- 1999
|
|
43
|
Efficient incremental run-time specialization for free
– Marlet, Consel, et al.
- 1999
|
|
26
|
Dybvig. Dynamo: A staged compiler architecture for dynamic program optimization
– Leone, Kent
- 1997
|
|
20
|
The HP-PA8000 RISC CPU: A High Performance Out-of-Order Processor
– Kumar
- 1996
|
|
15
|
Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
– Kelly, Cmelik, et al.
- 1998
|
|
8
|
Emulating the x86 and DOS/Windows in RISC environments
– Stears
- 1994
|
|
6
|
Compiling Java Just
– Cramer, Friedman, et al.
- 1997
|
|
4
|
Putting the fill unit to work: dynamnic optimizations for trace cache microprocessors
– Friendly, Patel, et al.
- 1998
|
|
4
|
Using complete machine simulation to understand computer system behavior
– Herold
- 1998
|
|
3
|
Fast, effective dynamic compilation
– AUSLANDER, PHILIPOSE, et al.
- 1996
|
|
3
|
Dynamic optimization: the Dynamo project at HP Labs Cambridge (project proposal). HP Labs internal memo
– Bala, Freudenberger
- 1996
|