  Dynamic Translation (DT) is a sophisticated technique that allows the
implementation of high-performance emulators and high-level-language virtual
machines. In this technique, the guest code is compiled dynamically at runtime.
Consequently, achieving good performance depends on several design decisions,
including the shape of the regions of code being translated. Researchers and
engineers explore these decisions to bring the best performance possible.
However, a real DT engine is a very sophisticated piece of software, and
modifying one is a hard and demanding task. Hence, we propose using simulation
to evaluate the impact of design decisions on dynamic translators and present
RAIn, an open-source DT simulator that facilitates the test of DT's design
decisions, such as Region Formation Techniques (RFTs). RAIn outputs several
statistics that support the analysis of how design decisions may affect the
behavior and the performance of a real DT. We validated RAIn running a set of
experiments with six well known RFTs (NET, MRET2, LEI, NETPlus, NET-R, and
NETPlus-e-r) and showed that it can reproduce well-known results from the
literature without the effort of implementing them on a real and complex
dynamic translator engine.
