LLVM (poprzednio Low Level Virtual Machine) – napisany w C++ kompilator. Pierwotnie był zaprojektowany dla języka C/C++, lecz dzięki jego ogólnej architekturze powstało wiele front-endów obejmujących m.in. języki Objective-C, Fortran, Ada, Haskell, D, Java, Scala, Python, Ruby czy ActionScript.

Projekt powstał w 2000 roku na Uniwersytecie Illinois w Urbana-Champaign pod kierownictwem Vikrama Adve oraz Chrisa Lattnera. LLVM początkowo służył badaniom nad technikami dynamicznej kompilacji dla statycznych i dynamicznych języków programowania i został wydany na licencji BSD. W 2005 roku Apple Inc. zatrudniło Lattnera i powołało zespół programistów w celu wykorzystania LLVM w systemach tworzenia aplikacji tej firmy. LLVM jest integralną częścią najnowszych narzędzi programistycznych dla systemu OS X oraz iOS.

Zasada działania Kluczową część systemu kompilacji LLVM stanowi warstwa pośrednia, która pobiera kod pośredni (IF – Intermediate form) z kompilatora dla określonego języka programowania i optymalizuje go. Może on zostać później przekonwertowany na kod asemblera dla konkretnej platformy sprzętowej, lub też pozostawiony do późniejszej kompilacji w locie (JIT), podobnie jak w języku Java.