Don't build a JavaScript JIT. A fast interpreter will be enough
twitter.com
twitter.com
Godbolt for compiler internals and each compiler internal pass would be useful for me.
Nothing extraordinary, in fact if you have been following the development of JS VM for the past 10-15 years this should have been well known.
The original v8 was a significant change in that it showed that it is possible to optimize - to machine code - js in a way that offers sufficient perf to make it an enabler of more complex code.
however that came at a significant increase in real world page load performance. Dealing with that latency regression was a significant challenge when originally introducing a JIT to JSC.
Even today it is amazing how little emphasis is seemingly placed on interpreter performance by chrome and Firefox, as it dominates page load performance and latency for almost all real world pages. (I’m actually somewhat curious what % of js source seen by engines ever actually reaches a point where gains from native codegen cover the runtime cost of said codegen)
Maybe not "interpreter performance" per se, but it's in the area and focused on page load time.
JS interpreter perf is a significant part of the latency, which is why it's weird to me that so little effort is placed into that vs the ever increasing complexity of JIT optimizations that are only important for a minority of websites.
There are also security reasons for improving interpreter perf as it gives you the option to have the JIT disabled for more processes (at the extreme there's iOS "lockdown" mode which disables the JITs everywhere)