LLVM 16.0 ja see anti välja ja need on selle uudised

LLVM logo

LLVM on raamistik nii kompilaatorite arendamiseks kui ka uute programmeerimiskeelte loomisel ja olemasolevate keelte täiustamisel.

Pärast veidi enam kui kuuekuulist arendustööd aasta käivitamine projekti uus versioon LLVM 16.0, versioon, milles on rakendatud palju muudatusi ja täiustusi.

Need, kes LLVM-iga ei tunne, peaksid teadma, et see on GCC-ga ühilduv kompilaator (kompilaatorid, optimeerijad ja koodigeneraatorid), mis kompileerib programmid RISC-laadseks virtuaalkäskude vahebitkoodiks (madala tasemega virtuaalmasin mitmetasandilise optimeerimissüsteemiga).

Loodud pseudokoodi saab JIT-i kompilaator teisendada masinakäskudeks just programmi täitmise ajal.

LLVM 16.0 peamised uued funktsioonid

Selles esitletavas uues versioonis leiame mitmeid olulisi täiustusi Clangis 16.0, millest paistab silma vaikimisi C++/ObjC++ standard, mis on seatud väärtusele gnu++17 (varem gnu++14), mis tähendab vaikimisi GNU laiendustega C++17 funktsioonide tuge. LLVM koodis on lubatud kasutada C++17 standardis määratletud elemente.

Veel üks silmapaistev muudatus on see, et see on lisatud Cortex-A715, Cortex-X3 ja Neoverse protsessorite tugi V2, Armv8.3 laiendused ja mitme versiooni funktsioonid AArch64 taustaprogrammile.
La platvormi ühilduvus Armv2, Armv2A, Armv3 ja Armv3M tootmine on lõpetatud ARM-i arhitektuuri taustaprogrammis, mille puhul korrektne koodi genereerimine ei olnud garanteeritud. Lisati võimalus genereerida kood juhiste jaoks kompleksarvudega töötamiseks ja lisatud arhitektuuride tugi juhiste komplektidest (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT X86 taustaprogrammiks.

Peale selle, on tõstetud nõudeid LLVM-i ehitamisele, Samuti peaks järg nüüd ühilduma C++17 standardiga, st et ehitamine nõuab vähemalt GCC 7.1, Clang 5.0, Apple Clang 10.0 või Visual Studio 2019 16.7.

Teisest küljest tõstab see ka esile täiustatud taustaprogrammid MIPS-i, PowerPC- ja RISC-V-arhitektuuride jaoks, samuti tugi 64-bitiste käivitatavate failide silumiseks LoongArchi arhitektuuri jaoks LLDB silurile ja COFF-i silumissümbolite täiustatud käsitsemine.

Muudest muudatustest mis paistavad silma:

  • Libc++ teegis keskenduti põhitööle C++20 ja C++23 standardite uute funktsioonide toe juurutamisele.
  • Linkimisaega on LDD linkeris märkimisväärselt lühendatud, paralleelses aadressi ümberpaigutamise skannimise ja sektsiooni lähtestamise toimingud. Lisatud tugi sektsioonide tihendamiseks ZSTD algoritmi abil.
  • Samuti on esile tõstetud C++20 standardiga rakendatud täiustatud funktsioonid.
  • jäädvustada struktureeritud linke lambda funktsioonides.
  • Võrdsuse operaator avaldistes.
  • Võimalus mõnes kontekstis tüübinime märksõna mitte määrata,
  • Sulgude vahele lisatud lähtestamise lubatavus ("Aggr(val1, val2)").
  • Rakendatud funktsioonid, mis on määratletud tulevases C++2b standardis.
  • char8_t tüübi tugi,
  • Laiendas kaustas "\N{…}" kasutamiseks lubatud tähemärkide ulatust,
  • Lisatud on võimalus kasutada muutujaid, mis on deklareeritud kui "staatiline constexpr", funktsioonides, mis on deklareeritud kui constexpr.
  • Rakendatud funktsioonid, mis on määratletud tulevases C2x C standardis:
  • Lisatud tugi mitme konfiguratsioonifaili laadimiseks (kõigepealt laaditakse vaikimisi konfiguratsioonifailid, seejärel need, mis on määratud lipuga „–config=”, mida saab nüüd mitu korda määrata).
  • Vaikimisi konfiguratsioonifailide laadimise järjekord on muudetud: clang proovib faili kõigepealt laadida - .cfg ja kui see ei leia seda, proovib see laadida kahte faili .cfg ja .cfg.
  • Rutiinse kaadri joondatud levitamise jaoks on lisatud uus järgu lipp "-fcoro-aligned-allocation".
  • Lisatud lipp "-fmodule-output", et võimaldada standardsete C++ moodulite ühefaasilist ehitusmudelit.
  • Virnaraami paigutusega seotud probleemide diagnoosimiseks on lisatud režiim "-Rpass-analysis=stack-frame-layout".
  • Lisati uus atribuut __attribute__((target_version("cpu_features"))) ja laiendati atribuudi __attribute__((target_clones("cpu_features1″,"cpu_features2",…))) funktsionaalsust, et valida CPU Aarch64 pakutavate funktsioonide konkreetsed versioonid .
  • Täiustatud diagnostikavahendid:
  • Lisatud hoiatus "-Wsingle-bit-bitfield-constant-conversion", et tabada kaudne kärpimine, kui määrate selle ühebitise märgiga bitiväljale.
  • Laiendatud diagnostika initsialiseerimata constexpr-muutujatele.
  • Lisatud hoiatused "-Wcast-function-type-strict" ja "-Wincompatible-function-pointer-types-strict", et tuvastada võimalikud probleemid funktsioonitüüpide ülekandmisel.

Lõpuks Kui soovite sellest rohkem teada saada, üksikasju saate vaadata lehelt järgmine link.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.