Improving SIMD code generation in QEMU.
Sheng-Yu Fu, Jan-Jan Wu, Wei-Chung Hsu



DATE 2015


Modern processors are often enhanced using SIMD instructions, such as the MMX, SSE, and AVX instructions set in the x86 architecture, or the NEON instruction set in the ARM architecture. Using these SIMD instructions could significantly increase application performance, hence in application binaries a significant proportion of instructions are likely to be SIMD instructions. However, Dynamic Binary Translation (DBT) has largely overlooked SIMD instruction translation. For example, in the popular QEMU system emulator, guest SIMD instructions are often emulated with a sequence of scalar instructions even when the host machines have SIMD instructions to support such parallel computation, leaving significant potential for performance enhancement. In this paper, we propose two approaches, one leveraging the existing helper function implementation in QEMU, and the other using a newly introduced vector IR (Intermediate Representation) to enhance the performance of SIMD instruction translation in DBT of QEMU. Both approaches were implemented in the QEMU to support ARM and IA32 frontend and x86-64 backend. Preliminary experiments show that adding vector IR can significantly enhance the performance of guest applications containing SIMD instructions for both ARM and IA32 architectures when running with QEMU on the x86-64 platform.

Author Links

1. 傅勝余
PhD student
3. 徐慰中

External Links

Find on DBLP
Google Scholar
Search on Google Scholar

Cite This Paper

Sheng-Yu Fu, Jan-Jan Wu, Wei-Chung Hsu:
Improving SIMD code generation in QEMU. DATE 2015
Download BibTex (.bib)

台北市大安區羅斯福路四段1號 德田館404室
02-33664888 ext. 404