On the HHVM (HipHop Virtal Machine) blog there's a new post that looks at the evolution of the HHVM JIT compiler since the project started about four years ago.
When the hhvm project was started almost 4 years ago, it had a two-part mandate: First, create a PHP JIT that could serve facebook.com at least as efficiently as hphpc, the PHP execution engine we were using at the time. Second, replace hphpi, the interpreter our PHP developers were using in their daily work. hphpc and hphpi were independent pieces of software with unintentional subtle differences in behavior and a significant maintenance burden. Unifying the execution engines used in production and development would make our jobs easier while giving the PHP devs a nicer experience at the same time.
The article goes on to talk about their needs from the environment and the basics of how the JIT compiler works to "translate" the code into something more low level than even C++. They chart out the performance of the HHVM versus the HPPC, showing a major growth around the end of the last year and continuing into this year. They also give an example of how this translation happens from a PHP script to bytecode to the translated result from their "TranslatorX64" tool.