Proceedings of the 9th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments 2013
DOI: 10.1145/2451512.2451519
|View full text |Cite
|
Sign up to set email alerts
|

Improving dynamic binary optimization through early-exit guided code region formation

Abstract: Most dynamic binary translators (DBT) and optimizers (DBO) target binary traces, i.e. frequently executed paths, as code regions to be translated and optimized. Code region formation is the most important first step in all DBTs and DBOs. The quality of the dynamically formed code regions determines the extent and the types of optimization opportunities that can be exposed to DBTs and DBOs, and thus, determines the ultimate quality of the final optimized code. The Next-Executing-Tail (NET) trace formation metho… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2014
2014
2020
2020

Publication Types

Select...
5
3

Relationship

2
6

Authors

Journals

citations
Cited by 12 publications
(3 citation statements)
references
References 27 publications
0
3
0
Order By: Relevance
“…Many decisions such as the shape and size of the regions affect the quality of the code generated. For instance, regions with a more substantial number of instructions may expose many more optimization opportunities to the compiler, but regions with more branches are more susceptible to early exits due to phase changing [31], leading to region fragmentation [21], code duplication [32], and infrequently executed region tails [33]. Another problem with large regions comes from exception handling: given the difficulty to map exceptions during native execution, the DTE may need to roll the execution back and reinterpret the entire region every time an exception occurs and regions with frequent exceptions may become a performance issue [34].…”
Section: Dynamic Translation Performancementioning
confidence: 99%
“…Many decisions such as the shape and size of the regions affect the quality of the code generated. For instance, regions with a more substantial number of instructions may expose many more optimization opportunities to the compiler, but regions with more branches are more susceptible to early exits due to phase changing [31], leading to region fragmentation [21], code duplication [32], and infrequently executed region tails [33]. Another problem with large regions comes from exception handling: given the difficulty to map exceptions during native execution, the DTE may need to roll the execution back and reinterpret the entire region every time an exception occurs and regions with frequent exceptions may become a performance issue [34].…”
Section: Dynamic Translation Performancementioning
confidence: 99%
“…There are also several schemes to optimize DBT systems in previous research work [16,22,35,37,39]. In general, our approach can leverage those optimizations to further improve the emulation performance.…”
Section: Delmentioning
confidence: 99%
“…Control transfer optimizations refer to optimizations that can transfer execution directly from one translation block to another without interference from the runtime system. Existing control transfer optimizations and superblock optimizations in dynamic binary translation (e.g., block chaining [Cmelik and Keppel 1994;Witchel and Rosenblum 1996;Smith and Nair 2005], trace optimization [Bala et al 2000;Bruening et al 2003;Luk et al 2005;Hsu et al 2013;Hong et al 2012], and indirect branch target caching [Scott et al 2004]) have been shown to be effective and have been widely adapted to high-level language VMs [Inoue et al 2011], or dynamic scripting languages [Gal et al 2009;Bebenita et al 2010].…”
Section: Control Transfer Optimizationsmentioning
confidence: 99%