GCC 11.1 je že izšel, to so njegove najpomembnejše novice in spremembe

Po letu razvoja, objavljena nova različica zbirke prevajalnikov GCC 11.1, prva pomembnejša izdaja v novi podružnici GCC 11.x. V skladu z novo shemo oštevilčenja različic je bila med razvojem uporabljena različica 11.0, tik pred izdajo GCC 11.1 pa je bila veja GCC 12.0 že razčlenjena za oblikovanje naslednje večje različice GCC 12.1.

GCC 11.1 izstopa pri prehodu na privzeto obliko datoteke za odpravljanje napak DWARF 5, privzeta vključitev standarda C ++ 17 ("-std = gnu ++ 17"), pomembne izboljšave v združljivosti s standardom C ++ 20, eksperimentalna podpora za C ++ 23, izboljšave, povezane s prihodnjim standardom jezik C (C2x), nove optimizacije zmogljivosti.

GCC 11.1 Glavne nove funkcije

Privzeti način za jezik C ++ se spremeni tako, da uporablja standard C ++ 17, namesto prej predlaganega C ++ 14. Mogoče je selektivno onemogočiti vedenje novega C ++ 17 pri obdelavi predlog, ki za parameter uporabljajo druge predloge (-fno-new-ttp-matching).

Dodana podpora za strojno pospeševanje orodja AddressSanitizer, ki vam omogoča ugotavljanje dejstev o dostopu do osvobojenih pomnilniških površin, prekoračitvi omejitev dodeljenega vmesnega pomnilnika in nekaterih drugih vrstah napak pri delu s pomnilnikom. Strojno pospeševanje je trenutno na voljo samo za arhitekturo AArch64 in se osredotoča na njegovo uporabo pri sestavljanju jedra Linuxa.

Druga novost, ki je predstavljena, je optimizacije in izboljšave med postopki, saj je bil dodan nov prehod IPA-modref (-fipa-modref) za sledenje neželenim učinkom pri klicih funkcij in izboljšanje natančnosti analize. Poleg tega tudi a izboljšano izvajanje prepustnice IPA-ICF (-fipa-icf), ki zmanjša porabo pomnilnika za prevajanje in poveča število poenotenih funkcij, za katere se združijo enaki bloki kode.

El profilno optimiziran motor (PGO), izboljšan način "-fprofile-values" s sledenjem več parametrov za posredne klice.

prav tako Izpostavljeno je nadaljnje izvajanje standarda OpenMP 5.0 (Open Multi-Processing), v katerem dodana začetna podpora za direktivo o dodelitvi in ​​možnost uporabe neenotnih zank v gradnjah OpenMP. Zdaj je podprta spremenljivka okolja OMP_TARGET_OFFLOAD.

Izboljšana je izvedba specifikacije vzporednega programiranja OpenACC 2.6 za jezike C, C ++ in Fortran, ki opredeljuje orodja za razkladanje operacij na grafične procesorje in specializirane procesorje, kot je NVIDIA PTX.

Za jezike družine C je bil implementiran nov atribut "no_stack_protector", namenjen označevanju funkcij, za katere zaščita skladov ne sme biti omogočena ("-fstack-protector"). Atribut "malloc" je bil razširjen s podporo za prepoznavanje parov klicev za dodelitev in sprostitev pomnilnika, ki se v statičnem razčlenjevalniku uporablja za odkrivanje tipičnih napak v pomnilniku (puščanje pomnilnika, uporaba po brezplačnem, dvojni klici na brezplačno funkcijo itd.) in opozorila prevajalnika "-Wmismatched-dealloc", "-Wmismatched- new-delete" in " -Wfree-nonheap-object "poročanje o neskladnih operacijah sprostitve in sprostitve.

Pri ustvarjanju informacij o odpravljanju napak se privzeto uporablja format DWARF 5, ki v primerjavi s prejšnjimi različicami omogoča generiranje 25% kompaktnejših podatkov za odpravljanje napak. Popolna podpora za DWARF 5 zahteva binutils vsaj različice 2.35.2.

Izboljšane zmožnosti načina ThreadSanitizer (-fsanitize = nit), saj dadodaja podporo za alternativno izvajanje in okolja, kot tudi podpora orodju za odpravljanje napak Kercle Concurrency Sanitizer (KCSAN) za dinamično zaznavanje dirkalnih pogojev v jedru Linuxa. Dodani sta novi možnosti "–param tsan-distinct-volatile" in "–param tsan-instrument-func-entry-exit".

Vektorizator omogoča obračunavanje celotne vsebine funkcije in dodatno obdelavo zmogljivosti, povezanih s križišči, in sklicevanje na prejšnje bloke v nadzorni shemi poteka (CFG).

Optimizator lahko pretvori vrsto pogojnih operacij v izraz spremembe, v katerem se primerja ista spremenljivka. V prihodnosti lahko izraz spremembe kodiramo z navodili za preizkus bitov (za nadzor te pretvorbe je bila dodana možnost "-fbit-tests").

Za C ++ je bil izveden del sprememb in novosti, predlaganih v standardu C ++ 20, vključno z navideznimi funkcijami "consteval virtual", psevdo-rušilci za zaključevanje življenjskega cikla predmetov, uporabo razreda enum in izračun velikost matrike v izrazu "novo".

Če želite vedeti več o tem, podrobnosti lahko preverite v naslednjo povezavo. 


Pustite svoj komentar

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

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  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.