Dynamic recompilation

(Learn how and when to remove this message)

Program execution
General concepts
  • Code
  • Translation
    • Compiler
      • Compile time
    • Optimizing compiler
  • Intermediate representation (IR)
  • Execution
    • Runtime system
      • Runtime
    • Executable
    • Interpreter
    • Virtual machine
Types of code
  • Source code
  • Object code
  • Bytecode
  • Machine code
  • Microcode
Compilation strategies
  • Ahead-of-time (AOT)
  • Just-in-time (JIT)
  • Precompilation
  • Transcompilation
  • Recompilation
Notable runtimes
Notable compilers & toolchains
  • v
  • t
  • e

In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.

Uses

Most dynamic recompilers are used to convert machine code between architectures at runtime. This is a task often needed in the emulation of legacy gaming platforms. In other cases, a system may employ dynamic recompilation as part of an adaptive optimization strategy to execute a portable program representation such as Java or .NET Common Language Runtime bytecodes. Full-speed debuggers also utilize dynamic recompilation to reduce the space overhead incurred in most deoptimization techniques, and other features such as dynamic thread migration.

Tasks

The main tasks a dynamic recompiler has to perform are:

A dynamic recompiler may also perform some auxiliary tasks:

Applications

Emulators

See also

References

  1. ^ "HP Labs' technical report on Dynamo". Archived from the original on 2008-07-07. Retrieved 2006-01-22.
  2. ^ "DynamoRIO Dynamic Instrumentation Tool Platform". Archived from the original on 2019-09-05. Retrieved 2016-04-12.
  3. ^ "DynamoRIO". GitHub. 2021-10-15.
  4. ^ Paul, Matthias R.; Frinke, Axel C. (1997-10-13) [first published 1991], FreeKEYB - Enhanced DOS keyboard and console driver (User Manual) (v6.5 ed.)
  5. ^ "PCSX 2". Archived from the original on 2005-10-29. Retrieved 2009-04-15.
  6. ^ petebernert (2015-10-03). "GCemu". SourceForge.
  7. ^ "Gameboy Emulator for MSX | The New Image". GEM. Retrieved 2014-01-12.
  8. ^ "DeSmuME v0.9.9".
  9. ^ Publicado por Carlos Ballesteros Velasco (2013-07-28). "Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525)". Pspemu.soywiz.com. Retrieved 2014-01-12.
  10. ^ Mupen64Plus
  11. ^ "SH2".
  12. ^ "PPSSPP - PPSSPP - PSP emulator for Android, Windows, Linux, iOS, MacOSX". ppsspp.org. Retrieved 2021-11-17.

External links