This is an automated archive made by the Lemmit Bot.

The original was posted on /r/programminglanguages by /u/DependentlyHyped on 2024-09-05 21:13:10+00:00.


I’m an experienced compiler engineer, and I’m familiar with the typical static analyses and compiler optimizations done in ahead-of-time optimizing compilers.

However, I only have a very vague idea of how optimizing JITs work - just that they interpret while compiling hot-paths on the fly. What are good resources to get more familiar with this?

I’m particularly interested in:

  • how real-world, highly-performant JITs are structured
  • the dynamic analyses done to determine when to compile / (de-)optimize / do something besides just interpret
  • the optimizations done when actually compiling, and how these compare to the optimizations in AOT compilers
  • comparisons between JITs and doing PGO in an AOT compiler
  • achieving fast interpretation / an overall fast execution loop