Static Global Register Allocation for Dynamic Binary Translators
Abstract
Dynamic Binary Translators (DBTs) facilitate the execution of binaries across different Instruction Set Architectures (ISAs). Similar to a just-in-time compiler, they recompile machine code from one ISA to another, and subsequently execute the generated code. To achieve near-native execution speed, several challenges must be overcome. This includes the problem of register allocation (RA). In classical compiler engineering, RA is often performed by global methods. However, due to the nature of DBTs, established global methods like graph coloring or linear scan are hardly applicable. This is why state-of-the-art DBTs, like QEMU, use basic-block-local methods, which come with several disadvantages. Addressing these flaws, we propose a novel global method based on static target-to-host mappings. As most applications only work on a small set of registers, mapping them statically from host to target significantly reduces load/store overhead. In a case study using our RISC-V-on-ARM64 user-mode simulator RISE-SIM, we demonstrate speedups of up to 1.4 x compared to basic-block-local methods.
Authors 4
-
Affiliation as printed
RWTH Aachen University, Institute for Communication Technologies and Embedded Systems
-
Affiliation as printed
RWTH Aachen University, Institute for Communication Technologies and Embedded Systems
-
Affiliation as printed
RWTH Aachen University, Institute for Communication Technologies and Embedded Systems
-
Affiliation as printed
RWTH Aachen University, Institute for Communication Technologies and Embedded Systems
Cited by 1 stored of 1
1 result
No patents citing this paper on Lens.org (checked 2026-10-06).
References 9
-
W2003804316details pending0citations
-
W6631155369details pending0citations
-
W4232751114details pending0citations
-
W2140191557details pending0citations
-
W2167951282details pending0citations
-
W2516217148details pending0citations
-
W2533359514details pending0citations
-
W2807954138details pending0citations
9 results