• DocumentCode
    1857776
  • Title

    LnQ: Building High Performance Dynamic Binary Translators with Existing Compiler Backends

  • Author

    Hsu, Chun-Chen ; Liu, Pangfeng ; Wang, Chien-Min ; Wu, Jan-Jan ; Hong, Ding-Yong ; Yew, Pen-Chung ; Hsu, Wei-Chung

  • Author_Institution
    Dept. of Comput. Sci. & Inf. Eng., Nat. Taiwan Univ., Taipei, Taiwan
  • fYear
    2011
  • fDate
    13-16 Sept. 2011
  • Firstpage
    226
  • Lastpage
    234
  • 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 IS As, 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 anew host ISA. The goal of LnQ framework is to enable the process of building high performance and retarget able dynamic binary translators with existing optimizers and code generation back ends. LnQ framework consists of a translation module and an emulation engine. We design 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 retarget able, and conduct experiments on SPECCPU2006 benchmarks to show that the resulting binary translator has good performance. 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
    program compilers; program interpreters; virtual machines; LLVM compiler infrastructure; LnQ framework; QEMU emulation engine; binary code; code generation backend; compiler backend; dynamic binary translator; guest ISA; host ISA; just-in-time compilation; low level virtual machine; Benchmark testing; Emulation; Engines; Joining processes; Libraries; Optimization; Registers; Dynamic Binary Translation; LLVM; Optimization; QEMU;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel Processing (ICPP), 2011 International Conference on
  • Conference_Location
    Taipei City
  • ISSN
    0190-3918
  • Print_ISBN
    978-1-4577-1336-1
  • Electronic_ISBN
    0190-3918
  • Type

    conf

  • DOI
    10.1109/ICPP.2011.57
  • Filename
    6047191