Ja va ser alliberada la nova versió de LLVM 9.0 i aquestes són les seves novetats

LLVM

Després de sis mesos de desenvolupament es va presentar el llançament de la nova versió de el projecte LLVM 9.0, el qual és un conjunt d'eines compatible amb GCC (compiladors, optimitzadors i generadors de codi), que compila programes en un codi de bits intermedi d'instruccions virtuals tipus RISC (Una màquina virtual de baix nivell amb un sistema d'optimització multinivell).

Està dissenyada per optimitzar el temps de compilació, El temps d'enllaçat, el temps d'execució en qualsevol llenguatge de programació que l'usuari vulgui definir. Implementat originalment per compilar C i C ++, El disseny agnòstic de LLVM pel que fa a el llenguatge, i l'èxit de el projecte han engendrat una àmplia varietat de llenguatges, Incloent Objective-C, Fortran, Ada, Haskell, bytecode de Java, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambes i altres.

El pseudocodi generat pot convertir utilitzant el compilador JIT en instruccions de màquina directament en el moment de l'execució de el programa.

Principals novetats de LLVM 9.0

Entre les noves característiques de LLVM 9.0 es troben el suport per eliminar l'etiqueta de desenvolupament experimental de la plataforma RISC-V, El suport de C ++ per OpenCL.

Una altra novetat que es destaca és la capacitat de dividir el programa en parts carregades dinàmicament en LLD i la implementació de la construcció »asm goto» utilitzada en el codi de el nucli de Linux.

A més també es destaca que Libc ++ arribo amb suport per Wasi (WebAssembly System Interface), i LLD va introduir suport inicial per a l'enllaç dinàmic de WebAssembly. Es va agregar la implementació de l'expressió específica de GCC »asm goto», que li permet canviar d'un bloc en línia acoblament a una etiqueta en codi C.

Aquesta característica és necessària per construir el nucli de Linux en mode »CONFIG_JUMP_LABEL = i« usant Clang en sistemes x86_64. Considerant els canvis agregats en versions anteriors, El nucli de Linux ara es pot construir en Clang per a l'arquitectura x86_64 (anteriorment, només s'admetia per a arquitectures arm, aarch64, ppc32, ppc64le i mips.

S'ha afegit compatibilitat amb les instruccions BTI (Branch Target Indicator) i PAC (Pointer Authentication Code) per a l'arquitectura AArch64. Suport significativament millorat per a les plataformes MIPS, RISC-V i PowerPC.

A més, els projectes d'Android i ChromeOS ja han canviat a fer servir Clang per construir el nucli i Google està provant Clang com a plataforma de construcció principal nuclis per als seus sistemes Linux en funcionament.

En el futur, durant el procés de compilació de l'nucli, serà possible utilitzar altres components LLVM, inclosos LLD, LLVM-objcopy, LLVM-ar, LLVM-nm i LLVM-objdump.

S'ha afegit una funció de partició experimental a l'enllaçador LLD, que permet dividir un programa en diverses parts, cadascuna de les quals es col·loca en un arxiu ELF separat. Aquesta característica li permet executar la part principal de el programa, que, segons sigui necessari, cal afegir les components restants en el procés (per exemple, podeu seleccionar el visor de PDF incorporat com un arxiu separat, que es descarregarà només quan l'usuari obri l'arxiu PDF).

D'altra banda també es destaquen les nombroses millores en els backends per a les arquitectures X86, AArch64, ARM, SystemZ, MIPS, AMDGPU i PowerPC.

Per exemple, s'ha afegit suport per a les instruccions SVE2 i MTE (Extensions d'etiquetatge de memòria) per a l'arquitectura AArch64, suport per a l'arquitectura Armv8.1-M i l'arquitectura MVE s'han afegit a l'backend ARM.

Per al cas de AMDGPU es va afegir el suport per a l'arquitectura GFX10 (Navi), el valor predeterminat s'habilita per invocar una funció i fer passar el combinat activat DPP (Primitives de dades-paral·lel).

El depurador LLDB va introduir el ressaltat de color de les traces cap enrere; es va agregar suport per als blocs DWARF4 debug_types i DWARF5 debug_info;

Les utilitats LLVM-objcopy i LLVM-strip s'han agregat suport per a objectes i arxius executables en format COFF.

El backend per a l'arquitectura de l'arquitectura RISC-V s'estabilitza, El que ja no es posiciona com experimental i es construeix per defecte. Suport complet per a la generació de codi per a les variants de el conjunt d'instruccions RV32I i RV64I amb extensions MAFDC.

font: http://releases.llvm.org/


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.