LLVM és una infraestructura de compilació per millorar l'optimització de programes de diversos llenguatges de programació.
El propòsit inicial era perfeccionar el rerefons del compilador GCC, però el seu èxit l'ha fet abastar altres àrees del compilador. Des del 2007 té el seu propi frontal de compilació per a C i C++, anomenat Clang. Dins el projecte de LLVM també s'hi inclou el depurador LLDB.
El projecte va començar l'any 2000 a la Universitat d'Illinois a Urbana-Champaign sota la direcció de Chris Lattner.
L'any 2005 Apple va formar un grup de treball per incorporar LLVM a les seves plataformes de desenvolupament.
Actualment Apple és el principal patrocinador del desenvolupament de LLVM.
Originàriament, el nom LLVM eren les inicials de Low Level Virtual Machine, és a dir «Màquina Virtual de Baix Nivell» en anglès. Aquest nom però, s'ha deixat d'utilitzar perquè el projecte no té gaire relació amb el que actualment s'entén per màquina virtual en el món de la informàtica.
Extensions i formats .ll llenguatge d'assemblador de llvmLlenguatge Assemblador LLVM .bc codi intermedi bitcodeFormat Bitcode de LLVM
Comandes bàsiques Vegeu comandesLlista de Comandes LLVM
des de lleng. d'alt nivell llvm-gcc frontal de compilació gcc, sortida a codi intermedi (-c) o assemblador (-S) o codi nadiu llvm-g++ frontal de compilació g++, sortida com a l'anterior
des de codi intermedi (bitcode) lli executa codi intermedi directament mitjançant compilació al vol (ang: Just-In-Time)
opt optimitzador de bitcode amb sortida bitcode
llvm-dis desassemblador per a l'arquitectura actual llc converteix codi intermedi a assemblador per a una determinada arquitectura
llvm-link muntador de mòduls bitcode. Genera un bitcode amb tots els mòduls. llvm-ld muntador de mòduls bitcode equivalent a ld.comanda ld de Unix Genera un executable.
llvm-ar archiva com arcomanda ar de Unix els fitxers de codi intermedi llvm-nm llista la taula de símbols llvm-extract extreu una funció
des d'assemblador llvm-as assemblador amb sortida a codi intermedi
Endollable (plug-in) per al relligador GNU GOLD Realitzar optimitzacions en temps de relligat (anomenat en anglès "Link Time Optimizations"GNU - wiki sobre LTO (Link Time Optimization) o amb les sigles LTO) requereix la col·laboració del relligador del sistema.Endollable LLVM per al relligador GNU Gold
La darrera versió de GNU Binutils incorpora un relligador (en ang.: linker) alternatiu anomenat GOLDGNU binutils que admet endollables per facilitar optimitzacions externes en temps de relligat.
Intruccions.Optimitzacions LLVM en temps de relligat a Ubuntu Karmic
Gold, antigament present al paquet binutils-gold, està incorporat actualment al paquet binutils de GNU.
Referències
Enllaços externs
LLVM - Web oficial Frontals per a Fortran i Ada Altres projectes LLVM per a més llenguatges i programari Apple.Desenvolupadors - LLVM-GCC al Mac
Categoria:Eines de programació