Implementado originalmente para compilar C y C++, el diseño agnóstico de LLVM con respecto al lenguaje, y el éxito del proyecto han engendrado una amplia variedad de lenguajes, incluyendo Objective-C, Fortran, Ada, Haskell, bytecode de Java, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas y otros.
[2] El nombre "LLVM" era en principio las iniciales de "Low Level Virtual Machine", pero esta denominación causó una confusión ampliamente difundida, puesto que las máquinas virtuales son solo una de las muchas cosas que se pueden construir con LLVM.
Cuando la extensión del proyecto se amplió incluso más, LLVM se convirtió en un proyecto paraguas que incluye una multiplicidad de otros compiladores y tecnologías de bajo nivel, haciendo el nombre aún menos adecuado.
Este nuevo IF puede ser convertido y enlazado en un código ensamblador dependiente de la máquina concreta para una plataforma objetivo.
LLVM permite que el código sea compilado estáticamente, al igual que lo es bajo el sistema GCC tradicional, o por el contrario que se deje para una compilación tardía desde la IF a código máquina en una compilación en tiempo de ejecución de manera similar a como lo hace Java.
En sistemas con GPUs de gama alta, el código resultante era bastante escaso y redirigía las instrucciones a la GPU con cambios mínimos.
Un sistema similar fue desarrollado bajo la Gallium3D LLVMpipe e incorporado en la shell de GNOME para permitir que se ejecute sin una GPU.