V8 - js от гугла, там есть JIT. PyPy - реализация python - там есть JIT.
Они все делают каждый свой фирменный JIT? Нет, ясно что специфика языка добавляет свою логику, например если динамическая типизация, то там переменная - это структурка с полем «тип», а в статической такого может не быть и т.п.
Вопрос наверное больше про оптимизатор. Скажем, надо сгенерить машинный код для перебора элементов в цикле. Или надо перемножить 2 вектора. JIT вставит векторную инструкцию или будет перебирать? JIT сможет понять что вот эту функцию можно вообще не реализовывать, она никогда не вызывается и т.п.
Т.е. интересно, тот код, который пишет в память байтики машинного кода, он у всех свой домашний? Или юзаются какие-то LLVM-подобные штуки, которые для большинства JIT-компиляторов разных языков давно уже дают что-то одного типа?