Litcius/Paper detail

Efficient LLVM-based dynamic binary translation

Alexis Engelke, Dominik Okwieka, Martin Schulz

202112 citationsDOI

Abstract

Emulation of other or newer processor architectures is necessary for a wide variety of use cases, from ensuring compatibility to offering a vehicle for computer architecture research. This problem is usually approached using dynamic binary translation, where machine code is translated, on the fly, to the host architecture during program execution. Existing systems, like QEMU, usually focus on translation performance rather than the overall program execution, and extensions, like HQEMU, are limited by their underlying implementation. Conversely, performance-focused systems are typically used for binary instrumentation. E.g., DynamoRIO reuses original instructions where possible, while Instrew utilizes the LLVM compiler infrastructure, but only supports same-architecture code generation.

Topics & Concepts

Binary translationComputer scienceEmulationCompilerArchitectureOperating systemJust-in-time compilationMachine codeComputer architectureProgramming languageEmbedded systemParallel computingSoftwareArtEconomicsEconomic growthVisual artsParallel Computing and Optimization TechniquesEmbedded Systems Design TechniquesLogic, programming, and type systems