Dynamic binary translators enable binaries of a source platform to execute
on a target platform without recompilation. This is achieved by runtime
(on-the-fly) translation of source machine instructions into equivalent
target machine instructions. Typically dynamic binary translators are
used for migrating from an older platform to a newer one, implementing
complex instruction set architectures, speeding up simulators and in
profiling tools. In all these applications, the speed of translation is
critical to ensure that the overheads incurred by the translator do not
outweigh the advantages of dynamic translation. One such overhead is
created by the analysis required when code is translated for execution in
a parallel processing environment.