LLVM adalah level yang lebih rendah daripada VM biasa seperti JVM dan CLR. Misalnya, meskipun memiliki kait untuk pengumpul sampah, ia tidak menyediakan pengumpul sampah itu sendiri.
Demikian juga, JVM memiliki kompiler JIT built-in (kecuali dalam versi yang sangat kuno). LLVM memiliki beberapa kompiler JIT untuk LLVM IR, tetapi masih tergantung pengembang untuk menghubungkan semuanya dan sebenarnya JIT kode.
Ketika JVM menemukan eksternal yang tidak terselesaikan, ia keluar dan menemukan kelas yang tepat untuk memuaskannya, dan tahu bagaimana mencari file .class langsung di sistem file dan dalam file .jar file 1 . Kompiler JIT LLVM memiliki kait di mana Anda dapat memutuskan bagaimana hal-hal seperti itu ditangani. Seperti yang Anda harapkan, beberapa orang telah menulis beberapa versi default, sehingga dapat melakukan hal-hal secara kasar pada urutan yang sama seperti JVM - tetapi Anda juga bebas untuk mengabaikannya dan melakukan hal-hal yang berbeda jika Anda mau.
Sederhananya, jika Anda sedang mengembangkan kompiler (atau sesuatu pada urutan itu) ia memiliki banyak alat untuk membuat hidup Anda mudah. Alih-alih mengkhawatirkan optimasi, Anda dapat melakukan kira-kira terjemahan paling sederhana yang dapat Anda kelola dari kode sumber Anda ke LLVM IR, dan kemudian menggunakan perpustakaan LLVM untuk mengelola pengoptimalan, JITing, penautan, dll. Meskipun demikian, itu adalah perpustakaan - ia menyediakan perpustakaan - ia menyediakan perpustakaan beberapa fungsi yang sangat berguna sehingga Anda tidak harus berurusan dengan semua detail, tetapi masih berfungsi dan Anda masih menulis kode untuk memohonnya. Ini bukan produk jadi, hanya alat yang berguna untuk membangun produk yang relatif cepat dan mudah.
1 Secara teknis, tidak semua ini dibangun dalam JVM. Ini menentukan apa yang biasanya disebut loader kelas primordial sebagai bagian dari JVM yang tepat, dan kemudian ada pemuat kelas pengguna yang ditentukan dalam java.util.ClassLoader yang menangani hal-hal lain. Beberapa pemuat kelas disertakan secara default, dan jika Anda ingin cukup buruk, Anda dapat menambah mereka dengan mendefinisikan sendiri.