LLVM 12.0 on juba välja antud ja need on selle uudised

LLVM

Pärast kuut kuud arengut esitleti projekti LLVM 12.0 uue versiooni käivitamist GCC (kompilaatorid, optimeerijad ja koodigeneraatorid) ühilduv, mis kompileerib programmid RISC-ga sarnaste virtuaalsete käskude vahepealseks bitikoodiks (mitmetasandilise optimeerimissüsteemiga madala taseme virtuaalne masin).

Selles uues versioonis leiame erinevaid täiustusi ja uudiseid, millest saame esile tuua uue funktsiooni atribuudi "tune-cpu", mis toetab -mtune kui gcc, samuti erinevate platvormide täiustusi.

LLVM 12.0 peamised uued funktsioonid

Selles uues versioonis võime selle leida tugi llvm-build buildi tööriistakomplektile kirjutatud pythonis on lõpetatud, mille asemel on projekt täielikult üle läinud CMake build-süsteemi kasutamisele.

AArch64 arhitektuuri taustaprogramm on parandanud Windowsi platvormi tuge: Windowsi sihtsüsteemidele on ette nähtud korrektne assamblee väljundi genereerimine, optimeeritud on andmete genereerimine kerimiskõnedel (selliste andmete mahtu on vähendatud 60%), seh-direktiivide abil on lõdvestamiseks lisatud andmete loomise võime.

Kuigi PowerPC arhitektuuri taustaprogramm sisaldab uusi optimeerimisi sisse- ja tsükli juurutamiseks, täiustatud tugi Power10 protsessoritele, täiendav tugi MMA-juhistele massiividega manipuleerimiseks ja täiustatud tugi AIX-opsüsteemile.

et x86 lisas tuge AMD Zen 3, Intel Alder Lake ja Intel Sapphire Rapids protsessoritele, samuti juhised HRESET, UINTR ja AVXVNNI protsessoritele. Eemaldatud MPX-laienduste (mälukaitsepikenduste) tugi, et kontrollida, kas kursorid vastavad mälupiirangutele (seda tehnoloogiat ei ole laialdaselt kasutatud ja see on GCC-st eemaldatud ja klõpsatud). Monteerija on lisanud toe eesliidetele {disp32} ja {disp8} ning sufiksidele .d32 ja .d8, et kontrollida operandide ja üleminekute nihke suurust. Mikroarhitektuuri optimeerimise lubamise juhtimiseks lisati uus atribuut "tune-cpu".

Teine silma paistev muudatus on see lisatud on uus režiim "-fsanitize = unsigned-shift-base" allkirjastamata täisarvu ülevoolude tuvastamiseks pärast natuke nihkumist vasakule. Mach-O (macOS) vormingu puhul rakendatakse erandite käsitlemisel tuge arm64, arm ja i386 arhitektuuridele, lingi etapi optimeerimisele (LTO) ja virna lõõgastumiseks.

ka uus funktsiooniatribuut "tune-cpu" on esile tõstetud mis võimaldab omikroarhitektuuri optimeerimisi rakendatakse sõltumata atribuudist "target-cpu" või TargetMachine CPU, mida kasutatakse käskude komplekti valimiseks. Kui atribuuti pole, järgib häälestav protsessor sihtprotsessorit.

Libc ++ rakendab standardi C ++ 20 uusi funktsioone ja hakkas välja töötama C ++ 2b spetsifikatsiooni pluss funktsioone lisas tugi kokkupanekuks, keelates lokaliseerimise toe ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") ja seadmed pseudojuhuslike arvude genereerimiseks.

Kuigi Clang 12 täiustustest on AArch64 arhitektuuri jaoks lisatud uued kompilaatori lipud "-Moutline-atomics" ja "-mno-outline-atomics" selliste aatomiabiliste funktsioonide nagu "__aarch64_cas8_relax" lubamiseks ja keelamiseks. Need käitamisfunktsioonid määravad kindlaks, kas suurte süsteemilaienduste (LSE) tugi on olemas, ja kasutage sünkroonimiseks LL / SC (Load-link / store-conditional) juhiste kasutamiseks lisatud aatomiprotsessori juhiseid või tagasivõtmist.

Seda kursorit töödeldakse nüüd null-ja üleantavate kontrollidega (N). Valikut "-fdelete-null-pointer-check" saab kasutada atribuudi non-null eemaldamiseks, kui nõutakse nullväärtusi.

Linuxis AArch64 ja PowerPC arhitektuuride jaoks on "-fasynchronous -wind-tables" lubatud nimekõnede tabelite loomiseks, nagu GCC-s.

Jaotises "#pragma clang loop vectorize_width" lisati võimalus määrata vektoriseerimise meetodi valimiseks "fikseeritud" (vaikimisi) ja "skaleeritav" suvandid.

Linuxi kohandatud vahemäluserveris (Clang Server) väheneb pikaajalisel töötamisel märkimisväärselt mälu tarbimine (tasuta mälulehekülgede operatsioonisüsteemi tagastamiseks pakutakse perioodilist kõnet malloc_trimile).

Lõpuks kui olete huvitatud sellest rohkem teada saama selle uue versiooni kohta saate Palun vaadake üksikasju järgmises. 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.