LLVM 12.0 je već objavljen i ovo su njegove vijesti

LLVM

Nakon šest meseci razvoja predstavljeno je lansiranje nove verzije LLVM 12.0 projekta U skladu s GCC-om (kompajleri, optimizatori i generatori koda) koji kompajlira programe u srednji bit kod virtualnih uputa sličnih RISC-u (niskorazinski virtualni stroj s višestepenim sistemom za optimizaciju).

U ovoj novoj verziji možemo pronaći različita 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 karakteristike LLVM 12.0

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

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

Dok Pozadina PowerPC arhitekture uključuje nove optimizacije za ugradnju i postavljanje petlje, poboljšana podrška za Power10 procesore, dodatna podrška za MMA upute za manipulaciju nizovima i poboljšana podrška za AIX operativni sistem.

para 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} i 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 ulijevo. Za Mach-O (macOS) format implementirana je podrška za arm64, arm i i386 arhitekture, optimizacija stupnja veze (LTO) i odmotavanje steka prilikom rukovanja iznimkama.

Takođe istaknut je novi atribut značajke "tune-cpu" što omogućava ooptimizacije mikroarhitekture se primjenjuju 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 će slijediti ciljani CPU.

Libc ++ implementira nove karakteristike C ++ 20 standarda i započeo razvoj karakteristika C ++ 2b specifikacije, plus dodana podrška za sastavljanje sa 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". Ove funkcije vremena izvođenja određuju postoji li podrška za velika sistemska proširenja (LSE) i koriste priložene upute atomskog procesora ili vraćanje za uporabu LL / SC (Load-link / store-conditional) uputa za sinkronizaciju.

Pokazivač 'this' sada se obrađuje provjerama koje nisu null 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" je omogućeno za generiranje tablica prozivki, kao u GCC.

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

Na poslužitelju kengd keširanja (Clang Server) na Linuxu, potrošnja memorije tijekom dugotrajnog rada je znatno smanjena (osiguran je povremeni poziv malloc_trim za vraćanje slobodnih stranica memorije operativnom sistemu).

Konačno ako ste zainteresirani da saznate više o tome o ovoj novoj verziji, možete Pogledajte detalje u nastavku. link


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.