LLVM อยู่ในระดับที่ต่ำกว่า VM ทั่วไปเช่น JVM และ CLR ตัวอย่างเช่นแม้ว่าจะมีhooksสำหรับตัวรวบรวมขยะ แต่ก็ไม่ได้จัดเตรียมตัวรวบรวมขยะเอง
ในทำนองเดียวกัน JVM มีคอมไพเลอร์ JIT ในตัว (ยกเว้นในรุ่นโบราณจริงๆ) LLVM มีคอมไพเลอร์ JIT บางส่วนสำหรับ LLVM IR แต่ก็ยังขึ้นอยู่กับผู้พัฒนาที่จะเชื่อมโยงสิ่งต่าง ๆ เข้าด้วยกันและจริง ๆ แล้วโค้ด JIT
เมื่อ JVM พบภายนอกที่ไม่ได้แก้ไขมันจะออกไปและค้นหาคลาสที่เหมาะสมเพื่อให้เป็นที่พึงพอใจและรู้วิธีค้นหาไฟล์. class ในระบบไฟล์และในไฟล์. jar 1โดยตรง คอมไพเลอร์ JIT ของ LLVM มีตะขอที่คุณสามารถตัดสินใจได้ว่าจะจัดการกับมันอย่างไร ตามที่คุณคาดหวังบางคนเขียนเวอร์ชันเริ่มต้นบางอย่างเพื่อให้สามารถทำสิ่งต่าง ๆ ตามลำดับเดียวกับที่ JVM ทำได้ - แต่คุณก็สามารถละเว้นสิ่งเหล่านี้และทำสิ่งต่าง ๆ ได้หากคุณเลือก
พูดง่ายๆก็คือถ้าคุณกำลังพัฒนาคอมไพเลอร์ (หรือบางอย่างตามลำดับ) มันมีเครื่องมือมากมายที่จะทำให้ชีวิตของคุณง่ายขึ้น แทนที่จะต้องกังวลเกี่ยวกับการปรับให้เหมาะสมคุณสามารถทำการแปลที่ง่ายที่สุดที่คุณสามารถจัดการจากซอร์สโค้ดของคุณเป็น LLVM IR จากนั้นใช้ไลบรารี LLVM เพื่อจัดการการปรับการตั้งค่าการเชื่อมโยงและอื่น ๆ อย่างไรก็ตามมันเป็นไลบรารี - ฟังก์ชั่นที่มีประโยชน์จริงๆบางอย่างคุณจึงไม่ต้องจัดการกับรายละเอียดทั้งหมด แต่มันยังคงใช้งานได้และคุณยังคงเขียนโค้ดเพื่อเรียกใช้งาน มันไม่ใช่ผลิตภัณฑ์สำเร็จรูปเครื่องมือที่มีประโยชน์สำหรับการสร้างผลิตภัณฑ์ที่ค่อนข้างรวดเร็วและง่ายดาย
1 ในทางเทคนิคแล้วสิ่งเหล่านี้ไม่ได้ถูกสร้างไว้ใน JVM อย่างเหมาะสม มันระบุสิ่งที่มักจะเรียกว่าโหลดเดอร์ระดับแรกเป็นส่วนหนึ่งของ JVM ที่เหมาะสมจากนั้นมีตัวโหลดคลาสผู้ใช้ที่ระบุใน java.util.ClassLoader ที่จัดการสิ่งอื่น ๆ ตัวโหลดคลาสบางตัวจะถูกรวมไว้โดยค่าเริ่มต้นและหากคุณต้องการไม่ดีพอคุณสามารถเสริมได้โดยการกำหนดของคุณเอง