LLVM 16.0 un tas tika izlaists, un tie ir tā jaunumi

LLVM logotips

LLVM ir ietvars kompilatoru izstrādei, kā arī palīdz veidot jaunas programmēšanas valodas un uzlabot esošās valodas.

Pēc nedaudz vairāk nekā sešu mēnešu izstrādes, gada uzsākšana jaunā projekta versija LLVM 16.0, versija, kurā ir ieviests liels skaits izmaiņu un uzlabojumu.

Tiem, kas nav pazīstami ar LLVM, jums jāzina, ka šis ir ar GCC saderīgs kompilators (kompilatori, optimizētāji un kodu ģeneratori), kas kompilē programmas RISC līdzīgā virtuālo instrukciju starpbitkodā (zema līmeņa virtuālā mašīna ar daudzlīmeņu optimizācijas sistēmu).

Ģenerēto pseidokodu JIT kompilators var pārvērst mašīnas instrukcijās tieši programmas izpildes laikā.

Galvenās jaunās LLVM 16.0 funkcijas

Šajā jaunajā versijā, kas tiek prezentēta, mēs varam atrast vairākus svarīgus uzlabojumus clang 16.0, no kuriem izceļas noklusējuma C++/ObjC++ standarts, kas ir iestatīts uz gnu++17 (agrāk gnu++14), kas nozīmē atbalstu C++17 funkcijām ar GNU paplašinājumiem pēc noklusējuma. LLVM kodā ir atļauts izmantot C++17 standartā definētos elementus.

Vēl viena no izmaiņām, kas izceļas, ir tā, ka tā ir pievienota atbalsts Cortex-A715, Cortex-X3 un Neoverse CPU V2, Armv8.3 paplašinājumi un vairāku versiju līdzekļi AArch64 aizmugursistēmai.
La platformas saderība Armv2, Armv2A, Armv3 un Armv3M ražošana ir pārtraukta ARM arhitektūras aizmugursistēmā, kurai netika garantēta pareiza koda ģenerēšana. Pievienota iespēja ģenerēt kodu instrukcijām darbam ar kompleksajiem skaitļiem un pievienota atbalsts arhitektūrām instrukciju komplekti (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT uz X86 aizmugursistēmu.

Bez tam, paaugstinātas prasības LLVM celtniecībai, Arī būvējumam tagad jābūt saderīgam ar C++17 standartu, t.i., būvēšanai ir nepieciešams vismaz GCC 7.1, Clang 5.0, Apple Clang 10.0 vai Visual Studio 2019 16.7.

No otras puses, tas arī izceļ uzlabotas aizmugursistēmas MIPS, PowerPC un RISC-V arhitektūrām, kā arī atbalsts 64 bitu izpildāmo failu atkļūdošanai LoongArch arhitektūrai ar LLDB atkļūdotāju un uzlabota COFF atkļūdošanas simbolu apstrāde.

No pārējām izmaiņām kas izceļas:

  • Libc++ bibliotēkā galvenais darbs tika vērsts uz C++20 un C++23 standartu jauno funkciju atbalsta ieviešanu.
  • Saites laiks ir ievērojami samazināts LDD savienotājā, paralēli veicot adreses pārvietošanas skenēšanu un sadaļas inicializācijas darbības. Pievienots atbalsts sadaļu saspiešanai, izmantojot ZSTD algoritmu.
  • Tiek izceltas arī uzlabotās funkcijas, kas ieviestas ar C++20 standartu.
  • uztvert strukturētas saites lambda funkcijās.
  • Vienlīdzības operators izteiksmēs.
  • Iespēja dažos kontekstos nenorādīt tipa nosaukuma atslēgvārdu,
  • Iekavās pievienota inicializācijas atļauja ("Aggr(val1, val2)").
  • Realizētas funkcijas, kas definētas topošajā C++2b standartā.
  • Atbalsts nodrošināts ar tipu char8_t,
  • Paplašināts rakstzīmju diapazons, ko atļauts izmantot "\N{…}",
  • Pievienota iespēja izmantot mainīgos, kas deklarēti kā "static constexpr" funkcijās, kas deklarētas kā constexpr.
  • Ieviestās funkcijas, kas definētas topošajā C2x C standartā:
  • Pievienots atbalsts vairāku konfigurācijas failu ielādei (vispirms tiek ielādēti noklusējuma konfigurācijas faili, pēc tam tie, kas norādīti ar karogu “–config=”, ko tagad var norādīt vairākas reizes).
  • Mainīta noklusējuma konfigurācijas failu ielādes secība: clang vispirms mēģina ielādēt failu - .cfg un, ja tas to nevar atrast, tas mēģina ielādēt divus failus .cfg un .cfg.
  • Pievienots jauns būvējuma karodziņš "-fcoro-aligned-allocation" parastajai kadru līdzinātajai izplatīšanai.
  • Pievienots karodziņš "-fmodule-output", lai iespējotu standarta C++ moduļu vienfāzes veidošanas modeli.
  • Pievienots režīms "-Rpass-analysis=stack-frame-layout", lai diagnosticētu steka rāmja izkārtojuma problēmas.
  • Pievienots jauns atribūts __attribute__((target_version("cpu_features"))) un paplašināta atribūta __attribute__((target_clones("cpu_features1″,"cpu_features2",…))) funkcionalitāte, lai atlasītu konkrētas CPU Aarch64 nodrošināto līdzekļu versijas .
  • Uzlaboti diagnostikas rīki:
  • Pievienots brīdinājums "-Wsingle-bit-bitfield-constant-conversion", lai uztvertu netiešu saīsināšanu, piešķirot to bitlaukam ar vienu bitu.
  • Paplašināta diagnostika neinicializētiem constexpr mainīgajiem.
  • Ir pievienoti brīdinājumi "-Wcast-function-type-strict" un "-Wincompatible-function-pointer-types-strict", lai konstatētu iespējamās problēmas, apraides funkciju veidus.

Beidzot Ja jūs interesē uzzināt vairāk par to, sīkāku informāciju varat pārbaudīt šī saite.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.