Font Size: a A A

Techniques to improve dynamic binary optimization

Posted on:2008-08-18Degree:Ph.DType:Thesis
University:University of MinnesotaCandidate:Das, AbhinavFull Text:PDF
GTID:2448390005451797Subject:Computer Science
Abstract/Summary:
Dynamic optimization is a system that optimizes applications at runtime. Compared to traditional optimization mechanisms, dynamic optimization has several advantages. It can optimize applications that have different performance profiles for different inputs and exhibit phase behavior. It can also optimize dynamically linked library code, loaded and linked at runtime and can also perform micro-architecture specific optimization. Dynamic code generated by virtual machines can be optimized by dynamic optimization. Two models of dynamic optimization have developed that manages the execution of applications differently with different limitations and advantages. Virtual machine based dynamic optimization systems have high overhead but have detailed information about execution. Sampling based dynamic optimizers have lesser control over execution but have very little overhead. In this thesis, we explore the limitations of sampling based dynamic optimizers, and propose various means of improving the applicability and performance of such systems. We propose improvements to phase detection and register acquisition that are key components of a dynamic optimization system. Region monitoring has been proposed to perform phase detection locally, within loops and procedures. Such local phase detection improves upon existing phase detection deployed in the dynamic optimizer and provides a framework to monitor individual regions. We use this framework to deploy a new optimization that identifies and removes useless software prefetches. Register acquisition techniques based on current hardware and software are described and we have discussed their limitations. We then propose and evaluate enhancements to architecture and micro-architecture to provide better information to the dynamic optimization system. For example, we extend the IA64 architecture to better support dynamic register acquisition. We also explore the benefits of supporting dynamic optimization at the level of the compiler. The impact of control flow and register usage annotations is discussed in greater detail along with a list of annotations that can be useful for supporting dynamic optimization.
Keywords/Search Tags:Dynamic, Optimization, Phase detection
Related items