Publication | Closed Access
An infrastructure for adaptive dynamic optimization
221
Citations
28
References
2003
Year
Unknown Venue
EngineeringCompiler TechnologyAdaptive Dynamic OptimizationComputer ArchitectureSoftware EngineeringAdaptive ComputingSoftware AnalysisSystems EngineeringParallel ComputingCompilersDynamic CompilationCompiler SupportStatic AnalysisComputer EngineeringComputer ScienceOptimizing CompilerDynamorio Runtime SystemStatic Program AnalysisSoftware DesignAdaptive OptimizationProgram AnalysisSoftware TestingParallel ProgrammingDynamorio PerformanceSystem SoftwareDynamic Optimization
Dynamic optimization promises to overcome obstacles of static compilation, yet few infrastructures exist, and the proposed interface also supports instrumentation, profiling, and dynamic translation. The authors present a framework for implementing dynamic analyses and optimizations and demonstrate its usefulness by implementing several optimizations. They provide an interface for building external modules for the DynamoRIO dynamic code modification system that abstracts low‑level details while exposing a simple, efficient, lightweight API, restricting optimization units to linear code streams and using adaptive levels of detail for instructions. The implemented optimizations improve performance of some applications by up to 40% relative to native execution, with an average speedup of 12% over base DynamoRIO performance.
Dynamic optimization is emerging as a promising approach to overcome many of the obstacles of traditional static compilation. But while there are a number of compiler infrastructures for developing static optimizations, there are very few for developing dynamic optimizations. We present a framework for implementing dynamic analyses and optimizations. We provide an interface for building external modules, or clients, for the DynamoRIO dynamic code modification system. This interface abstracts away many low-level details of the DynamoRIO runtime system while exposing a simple and powerful, yet efficient and lightweight API. This is achieved by restricting optimization units to linear streams of code and using adaptive levels of detail for representing instructions. The interface is not restricted to optimization and can be used for instrumentation, profiling, dynamic translation, etc. To demonstrate the usefulness and effectiveness of our framework, we implemented several optimizations. These improve the performance of some applications by as much as 40% relative to native execution. The average speedup relative to base DynamoRIO performance is 12%.
| Year | Citations | |
|---|---|---|
Page 1
Page 1