Жаль, что этот вопрос встал не с той ноги. Я пришел к нему в поисках более подробного сравнения.
Самое большое различие между байт-кодом JVM и битовым кодом LLVM заключается в том, что инструкции JVM ориентированы на стек, а битовый код LLVM - нет. Это означает, что вместо загрузки значений в регистры, байт-код JVM загружает значения в стек и вычисляет значения оттуда. Я считаю, что преимущество этого в том, что компилятору не нужно выделять регистры, но я не уверен.
Битовый код LLVM ближе к машинному коду, но не привязан к конкретной архитектуре. Например, я думаю, что битовый код LLVM может использовать произвольное количество логических регистров. Может быть, кто-то более знакомый с LLVM может говорить здесь?