About
HQEMU is a retargetable and multi-threaded dynamic binary translator on multicores.
It integrates QEMU and LLVM as its building blocks. The translator in the enhanced
QEMU acts as a fast translator with low translation overhead. The
optimization-intensive LLVM optimizer running on separate threads dynamically improves
code for higher performance. With the hybrid QEMU+LLVM approach, HQEMU can achieve low
translation overhead and good translated code quality.
HQEMU supports process-level emulation and full-system virtualization. It provides
translation modes of running the QEMU translator and LLVM optimizer in one process,
or running the LLVM optimizer as a stand-alone optimization server (version 0.13.0).
Publications
-
Sheng-Yu Fu, Ding-Yong Hong, Jan-Jan Wu, Pangfeng Liu and Wei-Chung Hsu.
"SIMD Code Translation in an Enhanced HQEMU."
IEEE International Conference on Parallel and Distributed Systems, Melbourne, Australia, December 2015.
paper
-
Chun-Chen Hsu, Ding-Yong Hong, Wei-Chung Hsu, Pangfeng Liu and Jan-Jan Wu.
"A Dynamic Binary Translation System in a Client/Server Environment."
Journal of Systems Architecture, volume 61, issue 7, pages 307-319, August 2015.
paper
-
Ding-Yong Hong, Jan-Jan Wu, Pen-Chung Yew, Wei-Chung Hsu, Chun-Chen Hsu, Pangfeng Liu, Chien-Min Wang and Yeh-Ching Chung.
"Efficient and Retargetable Dynamic Binary Translation on Multicores."
IEEE Transactions on Parallel and Distributed Systems, volume 25, issue 3, pages 622-632, March 2014.
paper
-
Ding-Yong Hong, Chun-Chen Hsu, Pen-Chung Yew, Jan-Jan Wu, Wei-Chung Hsu, Yeh-Ching Chung, Pangfeng Liu and Chien-Min Wang.
"HQEMU: A Multi-Threaded and Retargetable Dynamic Binary Translator on Multicores."
IEEE/ACM International Symposium on Code Generation and Optimization, San Jose, CA, March 2012.
paper
slides
demo
Download
-
Process-level emulation and full-system virtualization.
Guest ISA: x86, x86-64, arm, aarch64
Host ISA: x86, x86-64, aarch64, ppc64le
-
Process-level emulation and full-system virtualization.
Guest ISA: x86, x86-64, arm, aarch64
Host ISA: x86, x86-64
-
Process-level emulation and full-system virtualization.
Guest ISA: x86, x86-64, arm, aarch64
Host ISA: x86, x86-64
-
Process-level emulation only.
Client/server model is only supported in this version.
Guest ISA: x86, x86-64, arm, armeb, alpha, microblaze, mips, mipsel, ppc, sh4, sh4eb, sparc
Host ISA: x86, x86-64, arm, ppc64
Computer System Laboratory