Abstract

In dynamic binary translation, code is translated "on the fly" at run-time, while the user perceives ordinary execution of the program on the target machine. Code fragments that are frequently executed follow the same sequence of flow control over a period of time. These fragments form a hot path and are optimised to improve the overall performance of the program.Multiple hot paths may also exist in programs. A program may choose to execute in one hot path for some time, but later switch to another hot path, or even cycle between hot paths. Hence, each hot path is able to capture the most frequent execution pattern for a particular run-time stage of the program. The end result is that scattered code is collected, merged and optimised in a special way.In this paper we describe the optimisations performed by UQDBT - a machine-adaptable dynamic binary translator. We provide an algorithm for finding hot paths using edge weight profiles, and we explain how to optimise code in a machine-independent way, based on hot path information.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.