LLVM 9.0: n uusi versio on jo julkaistu ja nämä ovat sen uutisia

llvm

Kuuden kuukauden kehityksen jälkeen esiteltiin LLVM 9.0 -projektin uuden version julkaisu, joka on GCC-yhteensopiva työkalupakki (kääntäjät, optimoijat ja koodigeneraattorit), joka kokoaa ohjelmat RISC: n kaltaisten virtuaalisten ohjeiden välibittikoodiksi (matalan tason virtuaalikone, jossa on monitasoinen optimointijärjestelmä).

Se on suunniteltu optimoimaan kokoamisaika, sidonta-aika, suoritusaika millä tahansa ohjelmointikielellä, jonka käyttäjä haluaa määritellä. Alun perin toteutettu C: n ja C ++: n kokoamiseksi, LLVM: n kieliagnostiikka ja projektimenestys ovat synnyttäneet monenlaisia ​​kieliä, mukaan lukien Objective-C, Fortran, Ada, Haskell, Java-tavukoodi, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas ja muut.

Luotu pseudokoodi voidaan muuntaa JIT-kääntäjän avulla koneohjeiksi suoraan ohjelman suorituksen yhteydessä.

LLVM 9.0: n tärkeimmät uudet ominaisuudet

LLVM 9.0: n uusien ominaisuuksien joukossa löytää tukea kokeellisen kehitystunnisteen poistamiseksi RISC-V-alustalta, C ++ -tuki OpenCL: lle.

Toinen uutuus erottuu kyvystä jakaa ohjelma dynaamisesti ladattuihin osiin LLD: ssä ja Linux-ytinkoodissa käytetyn »asm goto» -konstruktion toteutus.

Lisäksi korostetaan myös, että Libc ++ saapui WASI-tuella (WebAssembly System Interface) ja LLD esittivät alustavan tuen WebAssembly-dynaamiselle sidonnalle. Lisätty GCC-spesifisen lausekkeen »asm goto» toteutus, jonka avulla voit siirtyä kootusta rivinvaihdosta C-koodin tagiksi.

Tämä ominaisuus on välttämätön Linux-ytimen rakentamiseksi »CONFIG_JUMP_LABEL = y« -tilassa käyttämällä Clangia x86_64-järjestelmissä. Ottaen huomioon edellisiin versioihin lisätyt muutokset, Linux-ydin voidaan nyt rakentaa Clangissa x86_64-arkkitehtuurille (aiemmin sitä tuettiin vain käsivarsi-, aarch64-, ppc32-, ppc64le- ja mips-arkkitehtuureille.

Tuki STT-ohjeille on lisätty (Haarakohteen ilmaisin) ja PAC (osoitintodennuskoodi) AArch64-arkkitehtuurille. Parannettu huomattavasti tukea MIPS-, RISC-V- ja PowerPC-alustoille.

Lisäksi, Android- ja ChromeOS-projektit ovat jo siirtyneet käyttämään Clangia ytimen rakentamiseen ja Google testaa Clangia ensisijaisena rakennusalustan ytimenä sen käynnissä oleville Linux-järjestelmille.

Tulevaisuudessa, ytimen kokoamisprosessin aikana on mahdollista käyttää muita komponentteja LLVM, mukaan lukien LLD, llvm-objcopy, llvm-ar, llvm-nm ja llvm-objdump.

LLD-linkkeriin on lisätty kokeellinen osiointitoiminto, jonka avulla ohjelma voidaan jakaa useaan osaan, joista kukin sijoitetaan erilliseen ELF-tiedostoon. Tämän ominaisuuden avulla voit suorittaa ohjelman pääosan, joka tarvittaessa lataa prosessin loput komponentit (voit esimerkiksi valita sisäänrakennetun PDF-katseluohjelman erillisenä tiedostona, joka ladataan vain, kun käyttäjä avaa tiedoston PDF).

Toisaalta myös taustakuvien lukuisat parannukset erottuvat. X86-, AArch64-, ARM-, SystemZ-, MIPS-, AMDGPU- ja PowerPC-arkkitehtuureille.

Esimerkiksi SVr2- ja MTE-ohjeiden (Memory Tagging Extensions) tuki on lisätty AArch64-arkkitehtuurille, tuki Armv8.1-M-arkkitehtuurille ja MVE -arkkitehtuuri on lisätty ARM-taustalle.

AMDGPU: n tapauksessa lisättiin tuki GFX10-arkkitehtuurille (Navi), oletusarvo on aktivoitu kutsumaan toiminto ja välittämään aktivoitu yhdistetty DPP (Data Primitives-Parallel).

LLDB-virheenkorjaaja esitteli jälkien värien korostamisen taaksepäin; lisätty tuki DWARF4 debug_types ja DWARF5 debug_info -lohkoille;

Llvm-objcopy ja llvm-strip -apuohjelmat ovat lisänneet tukea COFF-muotoisille suoritettaville tiedostoille ja objekteille.

RISC-V-arkkitehtuurin taustaosa on vakiintunut, jota ei enää sijoiteta kokeelliseksi ja joka on rakennettu oletuksena. Täysi tuki koodien luomiselle RV32I- ja RV64I-komentosarjamuunnelmille MAFDC-laajennuksilla.

lähde: http://releases.llvm.org/


Ole ensimmäinen kommentti

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.