LLVM

De Viquipèdia
Salta a la navegació Salta a la cerca
Infotaula de programariLLVM
DragonFull.png
Desenvolupador(s) Vikram Adve Tradueix i Chris Lattner
Versió inicial 24 octubre 2003
Versió estable 9.0.0 (19 setembre 2019)
Escrit en C++, C i llenguatge assemblador
Sistema operatiu multiplataforma
Tipus compilador
Llicència Llicència Open Source NCSA/Universitat d'Illinois i llicència Apache
Més informació
Lloc web Web oficial
Free Software Directory LLVM
Modifica les dades a Wikidata

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.

Originalment, 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[modifica]

.ll
llenguatge d'assemblador de llvm[1]
.bc
codi intermedi bitcode[2]

Comandes bàsiques[modifica]

Vegeu comandes[3]

des de lleng. d'alt nivell[modifica]

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]

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.[4] Genera un executable.
llvm-ar
archiva com ar[5] els fitxers de codi intermedi
llvm-nm
llista la taula de símbols
llvm-extract
extreu una funció

des d'assemblador[modifica]

llvm-as
assemblador amb sortida a codi intermedi

Endollable (plug-in) per al relligador GNU GOLD[modifica]

Realitzar optimitzacions en temps de relligat (anomenat en anglès "Link Time Optimizations"[6] o amb les sigles LTO) requereix la col·laboració del relligador del sistema.[7]

La darrera versió de GNU Binutils incorpora un relligador (en ang.: linker) alternatiu anomenat GOLD[8] que admet endollables per facilitar optimitzacions externes en temps de relligat.

Intruccions.[7][9]

  • Gold, antigament present al paquet binutils-gold, està incorporat actualment al paquet binutils de GNU.

Referències[modifica]

Enllaços externs[modifica]

A Wikimedia Commons hi ha contingut multimèdia relatiu a: LLVM Modifica l'enllaç a Wikidata