Building an interpreter with vmgenOptimizing indirect branch prediction accuracy in virtual machine interpretersStack caching for interpreters