Applying the JIT to an interpreter should have some better documentation. All
the information is basically there (in blog posts, papers, docstrings, tests
etc) but not really organized/approachable:
- which tools are there to inspect generated traces
- what are the basic hints that can be given via the jit driver?
- when is using unroll_safe a good idea?
- how to use virtualizables?
- what are the exact restrictions on their use?
- what to do when tracing stops most of the time due to a virtualizable escape
- hint(self, access_directly=True, fresh_virtualizable=True)
- how do virtualrefs work?