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.

Full Text
Published version (Free)

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