Nova različica LLVM 9.0 je že izšla in to so njene novice

LLVM

Po šestih mesecih razvoja predstavljena je bila predstavitev nove različice projekta LLVM 9.0, ki je GCC združljiv komplet orodij (prevajalniki, optimizatorji in generatorji kod), ki zbira programe v vmesno bitno kodo navideznih navodil, podobnih RISC (navidezni stroj na nizki ravni z večstopenjskim sistemom za optimizacijo).

Zasnovan je tako, da optimizira čas prevajanja, čas vezave, čas izvedbe v katerem koli programskem jeziku, ki ga želi uporabnik določiti. Prvotno izvedeno za prevajanje C in C ++, Jezikovno agnostično oblikovanje LLVM in uspeh projekta so ustvarili najrazličnejše jezike, vključno z Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas in drugimi.

Ustvarjeno psevdokodo lahko pretvorite s pomočjo prevajalnika JIT v strojna navodila neposredno v času izvajanja programa.

Glavne novosti LLVM 9.0

Med novostmi LLVM 9.0 našel podporo za odstranitev oznake eksperimentalnega razvoja s platforme RISC-V, Podpora za C ++ za OpenCL.

Še ena novost, ki izstopa zmožnost razdelitve programa na dinamično naložene dele v LLD in izvedba konstrukcije »asm goto«, ki se uporablja v kodi jedra Linuxa.

Poleg tega je poudarjeno tudi, da je Libc ++ prispel s podporo za WASI (WebAssembly System Interface) in LLD je uvedel začetno podporo za dinamično vezavo WebAssembly. Dodana je izvedba izraza »asm goto«, specifičnega za GCC, ki vam omogoča, da iz sestavljenega vrstnega bloka preklopite na oznako v kodi C.

Ta funkcija je potrebna za izdelavo jedra Linuxa v načinu »CONFIG_JUMP_LABEL = y« z uporabo Clang-a v sistemih x86_64. Glede na spremembe, dodane v prejšnjih različicah, lahko jedro Linuxa zdaj v Clangu vgradimo za arhitekturo x86_64 (prej je bilo podprto le za arhitekture arm, aarch64, ppc32, ppc64le in mips.

Dodana je podpora navodilom ZTI (Branch Target Indicator) in PAC (Pointer Authentication Code) za arhitekturo AArch64. Znatno izboljšana podpora za platforme MIPS, RISC-V in PowerPC.

Poleg tega, Projekta Android in ChromeOS sta že prešla na uporabo Clang-a za izdelavo jedra in Google preizkuša Clang kot primarno platformo za gradnjo jeder za svoje sisteme Linux.

V prihodnosti, med postopkom prevajanja jedra bo mogoče uporabljati druge komponente LLVM, vključno z LLD, llvm-objcopy, llvm-ar, llvm-nm in llvm-objdump.

Povezovalniku LLD je dodana poskusna particijska funkcija, ki omogoča razdelitev programa na več delov, od katerih je vsak nameščen v ločeno datoteko ELF. Ta funkcija vam omogoča, da zaženete glavni del programa, ki bo po potrebi naložil preostale komponente v procesu (na primer vgrajeni pregledovalnik PDF lahko izberete kot ločeno datoteko, ki se prenese samo, ko uporabnik odpre datoteko PDF).

Po drugi strani pa izstopajo tudi številne izboljšave v ozadju za arhitekture X86, AArch64, ARM, SystemZ, MIPS, AMDGPU in PowerPC.

Na primer, dodana je podpora za navodila SVE2 in MTE (Memory Tagging Extensions) za arhitekturo AArch64, podpora za arhitekturo Armv8.1-M in arhitekturo MVE je dodana v ozadje ARM.

V primeru AMDGPU je bila dodana podpora za arhitekturo GFX10 (Navi), privzeto je omogočeno, da pokliče funkcijo in posreduje aktivirani kombinirani DPP (Data Primitive-Parallel).

Razhroščevalnik LLDB je uvedel barvno poudarjanje sledi nazaj; dodana podpora za vrste napak DWARF4 in blokov debug_info DWARF5;

Pripomočki llvm-objcopy in llvm-strip so dodali podporo za izvršljive datoteke in predmete formata COFF.

Zaledje za arhitekturo RISC-V je stabilizirano, ki ni več postavljen kot poskusni in je privzeto zgrajen. Popolna podpora za generiranje kode za različici nabora ukazov RV32I in RV64I z razširitvami MAFDC.

vir: http://releases.llvm.org/


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.