Improving Region Selection Through Loop Completion
Dynamic binary translation is a powerful technique for program analysis and modification that operates on binary code as it executes, thus availing itself of information only available at run-time. However, by intervening between the software and hardware, a significant slowdown may be introduced into program execution, which can hinder widespread adoption. Several techniques have improved the performance of dynamic binary translators, one of which is the formation of super-blocks of frequently executed code. One of the challenges inherent in this technique is determining which paths of execution are frequently executed, and doing so quickly and with low overhead.