LLVM 16.0 ja se julkaistiin, ja nämä ovat sen uutisia

LLVM logo

LLVM on kehys kääntäjien kehittämiseen sekä uusien ohjelmointikielien rakentamiseen ja olemassa olevien kielten parantamiseen.

Hieman yli kuuden kuukauden kehitystyön jälkeen käynnistäminen projektin uusi versio LLVM 16.0, versio, jossa on toteutettu suuri määrä muutoksia ja parannuksia.

Niiden, jotka eivät tunne LLVM:ää, sinun pitäisi tietää tämä on GCC-yhteensopiva kääntäjä (kääntäjät, optimoijat ja koodigeneraattorit), joka kokoaa ohjelmat RISC-tyyppiseksi virtuaalikäskyn välibittikoodiksi (matalatason virtuaalikone, jossa on monitasoinen optimointijärjestelmä).

JIT-kääntäjä voi muuntaa luodun pseudokoodin konekäskyiksi juuri ohjelman suoritushetkellä.

LLVM 16.0: n tärkeimmät uudet ominaisuudet

Tässä esitellyssä uudessa versiossa voimme löytää useita tärkeitä parannuksia clangissa 16.0, joista C++/ObjC++-oletusstandardi erottuu, mikä on asetettu arvoon gnu++17 (aiemmin gnu++14), joka tarkoittaa oletuksena tukea C++17-ominaisuuksille GNU-laajennuksilla. C++17-standardissa määriteltyjen elementtien käyttö on sallittua LLVM-koodissa.

Toinen erottuva muutos on, että se on lisätty tuki Cortex-A715-, Cortex-X3- ja Neoverse-suorittimille V2-, Armv8.3-laajennukset ja usean version ominaisuudet AArch64-taustajärjestelmään.
La alustan yhteensopivuus Armv2, Armv2A, Armv3 ja Armv3M on lopetettu ARM-arkkitehtuurin taustajärjestelmässä, jolle oikeaa koodin luomista ei taattu. Lisätty mahdollisuus luoda koodi ohjeille kompleksilukujen kanssa työskentelyä varten ja lisätty tuki arkkitehtuureille ohjesarjoista (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT X86-taustajärjestelmäksi.

Sen lisäksi LLVM:n rakentamisen vaatimuksia on korotettu, Myös koontiversion pitäisi nyt olla yhteensopiva C++17-standardin kanssa, eli koontiversio vaatii vähintään GCC 7.1:n, Clang 5.0:n, Apple Clang 10.0:n tai Visual Studio 2019 16.7:n.

Toisaalta se myös korostaa parannetut taustaohjelmat MIPS-, PowerPC- ja RISC-V-arkkitehtuureille, sekä tuki 64-bittisten suoritettavien tiedostojen virheenkorjaukselle LoongArch-arkkitehtuuria varten LLDB-debuggeriin ja COFF-virheenkorjaussymbolien parannettu käsittely.

Muista muutoksista jotka erottuvat:

  • Libc++-kirjastossa päätyö keskittyi C++20- ja C++23-standardien uusien ominaisuuksien tuen toteuttamiseen.
  • Linkkiaikaa on lyhennetty merkittävästi LDD-linkkerissä rinnakkaisemalla osoitteen uudelleensijoitusskannaus ja osien alustustoiminnot. Lisätty tuki osien pakkaamiseen ZSTD-algoritmin avulla.
  • Myös C++20-standardilla toteutetut edistyneet toiminnot korostuvat.
  • kaapata strukturoituja linkkejä lambda-funktioissa.
  • Tasa-arvooperaattori lausekkeiden sisällä.
  • Mahdollisuus olla määrittämättä tyypin nimen avainsanaa joissakin yhteyksissä,
  • Sulkujen väliin lisätty alustuksen sallittavuus ("Aggr(arvo1, arvo2)").
  • Toteutetut funktiot, jotka on määritelty tulevassa C++2b-standardissa.
  • char8_t-tyypin tuki,
  • Laajennettiin "\N{…}":ssa käytettävien merkkien valikoimaa,
  • Lisätty mahdollisuus käyttää muuttujia, jotka on ilmoitettu nimellä "staattinen constexpr" funktioissa, jotka on ilmoitettu constexpr.
  • Tulevassa C2x C -standardissa määritellyt toiminnot:
  • Lisätty tuki useiden asetustiedostojen lataamiseen (oletusasetustiedostot ladataan ensin, sitten ne, jotka määritetään lipulla “–config=”, jotka voidaan nyt määrittää useita kertoja).
  • Oletusasetustiedostojen latausjärjestys muutettu: clang yrittää ladata tiedoston ensin - .cfg ja jos se ei löydä sitä, se yrittää ladata kaksi tiedostoa .cfg ja .cfg.
  • Lisätty uusi koontimerkintä "-fcoro-aligned-allocation" rutiininomaiselle kehystasaiselle jakelulle.
  • Lisätty "-fmodule-output" -lippu mahdollistaakseen vakio C++ -moduulien yksivaiheisen koontimallin.
  • Lisätty tila "-Rpass-analysis=stack-frame-layout" pinokehysasettelun ongelmien diagnosoimiseksi.
  • Lisättiin uusi __attribute__((target_version("cpu_features"))) -attribuutti ja laajennettiin __attribute__((target_clones("cpu_features1″,"cpu_features2",…))) -attribuutin toimintoja valitakseen tiettyjä CPU Ach64:n tarjoamia ominaisuuksia. .
  • Parannetut diagnostiikkatyökalut:
  • Lisätty varoitus "-Wsingle-bit-bitfield-constant-conversion" implisiittisen katkaisun havaitsemiseksi, kun se määritetään yksibittiselle allekirjoitetulle bittikenttään.
  • Laajennettu diagnostiikka alustamattomille constexpr-muuttujille.
  • Lisätty "-Wcast-function-type-strict" ja "-Winyhteensopiva-funktio-osoittimen-tyypit-tiukka" varoitukset, jotta voidaan havaita mahdolliset suoratoistotoimintotyyppien ongelmat.

Vihdoin Jos haluat tietää enemmän siitä, voit tarkistaa yksityiskohdat seuraava linkki.


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.