Low Level Virtual Machine
Low Level Virtual Machine, abreviat LLVM, en català Màquina Virtual de Nivell Baix, és una infraestructura de compilació per millorar la 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.
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.
Taula de continguts
Extensions i formats[modifica | modifica el codi]
- .ll
- llenguatge d'assemblador de llvm[1]
- .bc
- codi intermedi bitcode[2]
Comandes bàsiques[modifica | modifica el codi]
Vegeu comandes[3]
des de lleng. d'alt nivell[modifica | modifica el codi]
- 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)[modifica | modifica el codi]
- 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. Genera un executable.
- llvm-ar
- archiva com ar els fitxers de codi intermedi
- llvm-nm
- llista la taula de símbols
- llvm-extract
- extreu una funció
des d'assemblador[modifica | modifica el codi]
- llvm-as
- assemblador amb sortida a codi intermedi
Endollable (plug-in) per al relligador GNU GOLD[modifica | modifica el codi]
Realitzar optimitzacions en temps de relligat (anomenat en anglès "Link Time Optimizations"[4] o amb les sigles LTO) requereix la col·laboració del relligador del sistema.[5]
La darrera versió de GNU binutils incorpora un relligador (en ang.: linker) alternatiu anomenat GOLD[6] que admet endollables per facilitar optimitzacions externes en temps de relligat.
- Gold està disponible com a relligador alternatiu a Ubuntu Linux en un paquet a banda del de binutils estàndard[8] amb l'etiqueta d'experimental.
Referències[modifica | modifica el codi]
- ↑ Llenguatge Assemblador LLVM (anglès)
- ↑ Format Bitcode de LLVM (anglès)
- ↑ Llista de Comandes LLVM (anglès)
- ↑ GNU - wiki sobre LTO (Link Time Optimization)(anglès)
- ↑ 5,0 5,1 Endollable LLVM per al relligador GNU Gold(anglès)
- ↑ GNU binutils(anglès)
- ↑ Optimitzacions LLVM en temps de relligat a Ubuntu Karmic (anglès)
- ↑ GNU Gold a Ubuntu(anglès)
Enllaços externs[modifica | modifica el codi]
- LLVM - Web oficial (anglès)
- Frontals per a Fortran i Ada (anglès)
- Altres projectes LLVM per a més llenguatges i programari (anglès)
- Apple.Desenvolupadors - LLVM-GCC al Mac (anglès)
| Açò és un esborrany sobre programari. Amplieu-lo! (citant les fonts) |