Leveraging Indirect Branch Locality in Dynamic Binary TranslatorsReport
Dynamic Binary Translators (DBTs) have a wide range of applications like program instrumentation, dynamic opti- mization, and security. One of the main issues with DBTs is their performance overhead. A significant part of this overhead is caused by indirect branch (IB) translation. In this paper, we show that the percentage of instructions spent in translating indirect branches is as high as 50% of the total guest application�s instructions. The time spent in indirect branch translation is so high that in some ap- plications, bounding the code cache size actually results in an increased performance, since code cache flushes also remove stale indirect branch information along with the translated code. In order to improve the performance of in- direct branches, we analyze the locality of indirect branch targets and show that the locality is as high as 70%. We propose an indirect branch translation algorithm which ex- ploits this available locality. We analyze the performance of the proposed algorithm and show that the proposed al- gorithm achieves a hit rate of 73% compared to 46.5% with the default algorithm.
All rights reserved (no additional license for public reuse)
Dhanasekeran, Balaji, and Kim Hazelwood. "Leveraging Indirect Branch Locality in Dynamic Binary Translators." University of Virginia Dept. of Computer Science Tech Report (2010).
University of Virginia, Department of Computer Science