Fast Instruction Set Simulation Using LLVM-based Dynamic Translation
Abstract
In the development of embedded systems, Instruction-Set Simulators (ISS) plays an important role. When using an ISS, simulation speed is a significant issue. In this paper, we present a dynamic translation technique that uses the LLVM open-source compiler infrastructure to increase the simulation speed. Our dynamic translation technique translates hot basic blocks of the target instruction set into LLVM bitcode, and compiles LLVM bitcode into host binary code using the LLVM Just-In-Time (JIT) compiler. We have simulated the same programs using LLVM-based dynamic translation and using traditional dynamic translation to compare their performance. The experiments show that the dynamic translation based on LLVM increases simulation speed.