@inproceedings{10fbecfe7a344c8eb3a04dbb7d551f1c,
title = "LnQ: Building high performance dynamic binary translators with existing compiler backends",
abstract = "This paper presents an LLVM+QEMU (LnQ) framework for building high performance and retargetable binary translators with existing compiler modules. Dynamic binary translation is a just-in-time (JIT) compilation from binary code of guest ISA to binary code of host ISA. The quality of translated code is critical to the performance of a dynamic binary translator, which translates code between different ISAs, so the translated code is often carefully hand-optimized. As a result, it takes tremendous implementation efforts for software engineers to port an existing dynamic binary translator to a new host ISA. The goal of LnQ framework is to enable the process of building high performance and retargetable dynamic binary translators with existing optimizers and code generation backends. LnQ framework consists of a translation module and an emulation engine. We deisgn the translation module based on LLVM compiler infrastructure, and use QEMU as our emulation engine.We implement an x86-to-x86-64 dynamic binary translator with our LnQ framework to show that the framework is retargetable, and conduct experiments on SPEC CPU2006 benchmarks to show that the resulting binary translator has good perfromance. The experiment results indicate that the x86-to-x86-64 LnQ translator achieves an average speedup of 1.62X in integer benchmarks, and 3.02X in floating point benchmarks than QEMU.",
keywords = "Dynamic binary translation, LLVM, Optimization, QEMU",
author = "Hsu, {Chun Chen} and Pangfeng Liu and Wang, {Chien Min} and Wu, {Jan Jan} and Hong, {Ding Yong} and Yew, {Pen Chung} and Hsu, {Wei Chung}",
year = "2011",
doi = "10.1109/ICPP.2011.57",
language = "English (US)",
isbn = "9780769545103",
series = "Proceedings of the International Conference on Parallel Processing",
pages = "226--234",
booktitle = "Proceedings - 2011 International Conference on Parallel Processing, ICPP 2011",
note = "40th International Conference on Parallel Processing, ICPP 2011 ; Conference date: 13-09-2011 Through 16-09-2011",
}