LLVM 12.0 je že izšel in to so njegove novice

LLVM

Po šestih mesecih razvoja predstavljena je bila predstavitev nove različice projekta LLVM 12.0 Skladno z GCC (prevajalniki, optimizatorji in generatorji kod), ki programe prevede v vmesno bitno kodo navideznih navodil, podobnih RISC (navidezni stroj na nizki ravni z večstopenjskim sistemom optimizacije).

V tej novi različici najdemo različne izboljšave in novice, med katerimi lahko označimo nov atribut funkcije "tune-cpu", ki podpira -mtune kot gcc, pa tudi izboljšave na različnih platformah.

Glavne novosti LLVM 12.0

V tej novi različici lahko to najdemo podpora za orodje za gradnjo llvm-build napisano v pythonu je bilo ukinjeno, namesto tega se je projekt popolnoma preusmeril na uporabo gradbenega sistema CMake.

Zaledje za arhitekturo AArch64 je izboljšalo podporo za platformo Windows: zagotovljena je pravilna generacija izhodnih podatkov za ciljne sisteme Windows, optimizirano je ustvarjanje podatkov o odvihanjih klicev (velikost takih podatkov se je zmanjšala za 60%), dodana je zmožnost ustvarjanja podatkov, da se odvije z uporabo seh direktiv.

Medtem ko je Zaledje arhitekture PowerPC vključuje nove optimizacije za uvajanje v vrstici in zanki, izboljšave v podpori za procesorje Power10, dodatna podpora za navodila MMA za manipulacijo nizov in izboljšana podpora za operacijski sistem AIX.

za x86 je dodal podporo za procesorje AMD Zen 3, Intel Alder Lake in Intel Sapphire Rapids, pa tudi navodila za procesorje HRESET, UINTR in AVXVNNI. Odstranjena podpora za razširitve MPX (razširitve zaščite pomnilnika) za preverjanje kazalcev glede omejitev območja pomnilnika (ta tehnologija ni bila široko uporabljena in je bila že odstranjena iz GCC in clang). Monter je dodal podporo za predpone {disp32} in {disp8} ter priponi .d32 in .d8 za nadzor velikosti odmika operandov in prehodov. Dodan je bil nov atribut "tune-cpu" za nadzor omogočanja mikroarhitekturnih optimizacij.

Druga sprememba, ki izstopa, je ta dodan je nov način "-fsanitize = unsigned-shift-base" za zaznavanje nepodpisanih celoštevilskih prelivov po bitnem premiku v levo. Za format Mach-O (macOS) je implementirana podpora za arhitekture arm64, arm in i386, optimizacija stopnje povezave (LTO) in odvijanje skladov pri ravnanju z izjemami.

prav tako označen je nov atribut funkcije "tune-cpu" ki omogoča ooptimizacije mikroarhitekture se uporabljajo ne glede na atribut "target-cpu" ali CPU TargetMachine, ki bo uporabljen za izbiro nabora navodil. Če atribut ni prisoten, bo nastavitveni CPU sledil ciljnemu CPU.

Libc ++ uvaja nove funkcije standarda C ++ 20 in začel razvijati funkcije specifikacije C ++ 2b plus dodana podpora za sestavljanje z onemogočeno podporo za lokalizacijo ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") in naprave za generiranje psevdonaključnih števil.

Medtem ko je med izboljšavami za Clang 12, za arhitekturo AArch64, so dodane nove zastavice prevajalnika "-Moutline-atomics" in "-mno-outline-atomics", da omogočite in onemogočite atomske pomožne funkcije, kot je "__aarch64_cas8_relax". Te izvajalne funkcije določajo, ali obstaja podpora za velike sistemske razširitve (LSE), in uporabljajo priložena navodila za atomski procesor ali povratno uporabo navodil LL / SC (Load-link / store-conditional) za sinhronizacijo.

Kazalec 'to' je zdaj obdelan s preveritvami, ki niso nule in jih ni mogoče preusmeriti (N). Možnost "-fdelete-null-pointer-checks" lahko uporabite za odstranitev atributa, ki ni null, kadar so nujne vrednosti null.

V Linuxu za arhitekturi AArch64 in PowerPC je "-fasynchronous -wind-tabele" omogočeno za ustvarjanje tabel poimenskih klicev, kot v GCC.

V "#pragma clang loop vectorize_width" je bila dodana možnost določanja možnosti "fiksno" (privzeto) in "razširljivo" za izbiro metode vektorizacije.

V strežniku za predpomnjenje clangd (strežnik Clang) v Linuxu se poraba pomnilnika med dolgotrajnim delovanjem znatno zmanjša (zagotovljen je periodični klic malloc_trim za vrnitev prostih pomnilniških strani v operacijski sistem).

Končno če vas zanima več o tem o tej novi različici, lahko Podrobnosti si oglejte v nadaljevanju. povezavo


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.