LLVM ist niedriger als typische VMs wie JVM und CLR. Während es beispielsweise Hooks für einen Garbage Collector hat, stellt es selbst keinen Garbage Collector bereit.
Ebenso verfügt die JVM über einen integrierten JIT-Compiler (außer in wirklich alten Versionen). LLVM hat einige JIT-Compiler für LLVM IR, aber es ist immer noch Sache des Entwicklers, die Dinge zusammenzufügen und tatsächlich den Code zu JITen.
Wenn die JVM trifft eine nicht aufgelöste externe, geht es aus und findet die richtige Klasse , ihn zu befriedigen, und weiß , wie für .class - Dateien im Dateisystem direkt zu suchen und in .jar - Dateien 1 . Die JIT-Compiler von LLVM haben Hooks, mit denen Sie entscheiden können, wie solche Dinge gehandhabt werden. Wie zu erwarten war , haben einige Leute einige Standard Versionen geschrieben, so dass es kann Dinge tun , etwa in der gleichen Größenordnung wie die JVM kann - aber Sie sind auch frei , diese und tun Dinge anders zu ignorieren , wenn Sie wählen.
Einfach ausgedrückt, wenn Sie einen Compiler (oder etwas in dieser Reihenfolge) entwickeln, verfügt er über zahlreiche Tools, die Ihnen das Leben erleichtern. Anstatt sich große Sorgen um die Optimierung zu machen, können Sie die einfachste Übersetzung, die Sie von Ihrem Quellcode in LLVM IR verwalten können, ausführen und dann die LLVM-Bibliotheken zum Verwalten von Optimierung, JIT, Verknüpfung usw. verwenden. Trotzdem handelt es sich um Bibliotheken Einige wirklich nützliche Funktionen, damit Sie sich nicht mit allen Details befassen müssen, aber sie funktionieren immer noch und Sie schreiben immer noch Code, um sie aufzurufen. Es ist kein fertiges Produkt, sondern nur ein nützliches Werkzeug, um Produkte relativ schnell und einfach herzustellen.
1 Technisch ist nicht alles in die eigentliche JVM integriert. Es gibt an, was normalerweise als primordialer Klassenlader als Teil der eigentlichen JVM bezeichnet wird, und dann gibt es in java.util.ClassLoader angegebene Benutzerklassenlader, die andere Dinge behandeln. Einige Klassenladeprogramme sind standardmäßig enthalten, und wenn Sie dies dringend genug möchten, können Sie diese ergänzen, indem Sie Ihre eigenen definieren.