LLVM 12.0 je već objavljen i ovo su njegove vijesti

LLVM

Nakon šest mjeseci razvoja predstavljeno je lansiranje nove verzije projekta LLVM 12.0 Usklađen s GCC-om (kompajleri, optimizatori i generatori koda) koji kompajlira programe u srednje bitne kodove virtualnih uputa sličnih RISC-u (virtualni stroj na niskoj razini sa sustavom za optimizaciju na više razina).

U ovoj novoj verziji možemo pronaći razna poboljšanja i vijesti, od kojih možemo istaknuti novi atribut funkcije "tune-cpu" za podršku -mtune kao gcc, kao i poboljšanja na različitim platformama.

Glavne nove značajke LLVM-a 12.0

U ovoj novoj verziji to možemo pronaći podrška za llvm-build alat za izgradnju napisano pitonom je ukinut, umjesto čega se projekt u potpunosti prebacio na korištenje CMake build sustava.

Zaštita za arhitekturu AArch64 poboljšala je podršku za Windows platformu: osigurana je ispravna generacija izlaza asemblera za ciljane Windows sustave, optimizirano je generiranje podataka na odzivnim pozivima (veličina takvih podataka smanjena je za 60%), dodana je mogućnost stvaranja podataka odmotavanjem pomoću seh direktiva.

Dok Pozadina arhitekture PowerPC uključuje nove optimizacije za ugrađene i petlje implementacije, poboljšana podrška za Power10 procesore, dodatna podrška za MMA upute za manipulaciju nizovima i poboljšana podrška za AIX operativni sustav.

u x86 je dodao podršku za AMD Zen 3, Intel Alder Lake i Intel Sapphire Rapids procesore, kao i upute za procesore HRESET, UINTR i AVXVNNI. Uklonjena podrška za MPX proširenja (proširenja za zaštitu memorije) za provjeru pokazivača na ograničenja područja memorije (ova tehnologija nije široko korištena i od tada je uklonjena iz GCC-a i clang-a). Asembler je dodao podršku za prefikse {disp32} i {disp8} te sufikse .d32 i .d8 za kontrolu veličine odstupanja operanda i prijelaza. Novi atribut "tune-cpu" dodan je za kontrolu omogućavanja mikroarhitekturnih optimizacija.

Druga promjena koja se ističe je ta dodan je novi način rada "-fsanitize = unsigned-shift-base" za otkrivanje nepotpisanih prekoračenja cijelog broja nakon pomaka pomaka ulijevo. Za Mach-O (macOS) format implementirana je podrška za arhitekture arm64, arm i i386, optimizaciju stupnja veze (LTO) i odmotavanje stoga pri rukovanju iznimkama.

također istaknut je novi atribut značajke "tune-cpu" to omogućuje ooptimizacije mikroarhitekture primjenjuju se bez obzira na atribut "target-cpu" ili iz TargetMachine CPU-a koji će se koristiti za odabir skupa uputa. Ako atribut nije prisutan, ugađajući CPU slijedit će ciljani CPU.

Libc ++ implementira nove značajke C ++ 20 standarda i počeo razvijati značajke C ++ 2b specifikacije plus dodana podrška za sastavljanje s onemogućenom podrškom za lokalizaciju ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") i uređaji za generiranje pseudo-slučajnih brojeva.

Dok od poboljšanja za Clang 12, za arhitekturu AArch64, dodane su nove zastavice kompajlera "-Moutline-atomics" i "-mno-outline-atomics" za omogućavanje i onemogućavanje atomskih pomoćnih funkcija kao što je "__aarch64_cas8_relax". Te funkcije vremena izvođenja određuju postoji li podrška za velika proširenja sustava (LSE) i koriste se isporučenim uputama za atomski procesor ili vraćanjem da bi upotrijebile upute LL / SC (Load-link / store-uvjet) za sinkronizaciju.

Pokazivač 'this' sada se obrađuje provjerama koje nisu nule i koje se ne mogu preusmjeriti (N). Opcija "-fdelete-null-pointer-checks" može se koristiti za uklanjanje atributa koji nije null kada su potrebne null vrijednosti.

U Linuxu za arhitekture AArch64 i PowerPC, "-fasynchronous -wind-table" omogućeno je generiranje tablica prozivki, kao u GCC-u.

U "#pragma clang loop vectorize_width" dodana je mogućnost određivanja "fiksnih" (zadanih) i "skalabilnih" opcija za odabir metode vektorizacije.

Na poslužitelju predmemoriranja clangd (Clang Server) na Linuxu, potrošnja memorije tijekom dugotrajnog rada znatno je smanjena (osiguran je povremeni poziv na malloc_trim za vraćanje slobodnih stranica memorije u operativni sustav).

Konačno ako vas zanima više o tome o ovoj novoj verziji, možete Pogledajte detalje u nastavku. veza.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.