Related resources
Search for item elsewhere
University researcher(s)
Academic department(s)
Dynamic Program Analysis and Optimization under DynamoRIO
[Thesis]. Manchester, UK: The University of Manchester; 2014.
Access to files
- FULL-TEXT.PDF (pdf)
Abstract
A thesis submitted for the degree of Master of Philosophy.Title: Dynamic Program Analysis and Optimization under DynamoRIO.By Naweiluo Zhou, The University of Manchester, 5th February 2014. The thesis presents five experiments using DynamoRIO to analyse and optimise machinecodes at runtime in various ways and observe the effect of each optimisationusing the SPEC CPU2006 benchmarks as test case codes. Software often stays unchanged for periods measured in years, while new CPUchips are introduced every 18 months or so. In addition, it is often not realized howmodern CPU chips adjust their behaviour, and their performance, in response to dynamicconditions arising in the software that is running. Dynamic optimization iscarried out while a program runs. It calls on the knowledge of runtime behaviour ofthe program, which causes high runtime overhead. Programs can show performance gain by applying removal of redundant instructions,strength reduction, instruction alignment and persistent code. Strength reductionreplaces expensive instructions with cheap counterparts. The code layout in the memorycould affect the cache miss rate and the branch mis-prediction rate of the processor,which affect program performance. An optimized program could be recorded aspersistent cache, then loaded directly in the subsequent calls. One dynamic programanalysis method, glacial address propagation, is also presented. The values of glacialindirect addresses change slowly, making each value act as a constant address for a period,thus enabling a cascade of optimizations. To accelerate information processing,profile information is processed by multiple threads in parallel. Therefore, programs can be made to run more quickly using a variety of optimizationcarried out at runtime, aided by observation of control flow, data flow, and memoryaccess patterns of programs. Future work could perform static optimization before dynamicoptimization. The hardware power consumption will be taken into account.