GCC 11.1 on juba välja antud, need on selle olulisemad uudised ja muudatused

Pärast aastast arengut Välja anti GCC 11.1 kompilaatoripaketi uus versioon, esimene märkimisväärne väljaanne uues GCC 11.x harus. Uue versiooni nummerdamise skeemi kohaselt kasutati arenduse ajal versiooni 11.0 ja vahetult enne GCC 11.1 väljaandmist oli GCC 12.0 haru juba hargnenud, et moodustada GCC 12.1 järgmine suurem versioon.

GCC 11.1 paistab silma silumisfaili vaikevormingule DWARF 5 ülemineku poolest, standardi C ++ 17 vaikimisi lisamine ("-std = gnu ++ 17"), olulised täiustused C ++ 20 standardiga ühilduvuses, C ++ 23 eksperimentaalne tugi, tulevase standardi parandused C-keel (C2x), uued jõudluse optimeerimised.

GCC 11.1 peamised uued funktsioonid

C ++ keele vaikerežiim muudetakse standardi C ++ 17 kasutamiseks, varem pakutud C ++ 14 asemel. Mallide töötlemisel, mis kasutavad parameetrina teisi malle (-fno-new-ttp-matching), on võimalik valikuliselt keelata uus C ++ 17 käitumine.

Lisati riistvarakiirenduse tugi tööriista AddressSanitizer, mis võimaldab teil tuvastada vabastatud mälupiirkondadele juurdepääsu fikseerimise, eraldatud puhvri piiride ületamise ja mõne muu tüüpi viga mäluga töötamisel. Praegu on riistvarakiirendus saadaval ainult AArch64 arhitektuuri jaoks ja keskendub selle kasutamisele Linuxi kerneli kompileerimisel.

Teine uudsus, mida esitatakse, on protseduuride optimeerimine ja täiustamine, kuna lisati uus IPA-modrefi pääs (-fipa-modref) funktsioonikõnede kõrvaltoimete jälgimiseks ja analüüsi täpsuse parandamiseks. Lisaks ka a IPA-ICF-passi parem rakendamine (-fipa-icf), mis vähendab kompileerimismälu tarbimist ja suurendab ühtsete funktsioonide arvu, mille jaoks identsed koodiplokid on ühendatud.

El profiilipõhine optimeerimismootor (PGO), täiustatud režiim "-profiil-väärtused" jälgides kaudsete kõnede rohkem parameetreid.

ka Esile tõstetakse OpenMP 5.0 standardi jätkuvat rakendamist (Open Multi-Processing), milles lisati esialgne tugi määramisdirektiivile ja võimalus kasutada ebaühtlusi OpenMP järkudes. Keskkonnamuutuja OMP_TARGET_OFFLOAD on nüüd toetatud.

Parandatud on C, C ++ ja Fortrani keelte jaoks ette nähtud OpenACC 2.6 paralleelse programmeerimise spetsifikatsiooni rakendamist, mis määratleb tööriistad operatsioonide mahalaadimiseks GPU-dele ja spetsiaalsetele protsessoritele nagu NVIDIA PTX.

C-perekonna keelte jaoks on rakendatud uus atribuut "no_stack_protector", mõeldud funktsioonide tähistamiseks, mille puhul virnakaitset ei tohiks lubada ("-fstack-protector"). Atribuuti "malloc" on laiendatud, toetades mälupiirkonna eraldamiseks ja vabastamiseks kõnepaare, mida kasutatakse staatilises parseris tüüpiliste mäluvigade tuvastamiseks (mälulekked, kasutamine pärast tasuta, topeltkõned tasuta funktsioonile jne) ja kompilaatori hoiatused "-Wmismatched-dealloc", "-Wmismatched- new-delete" ja " -Vaba-mitteheapobjektiga "teatamine ebajärjekindlatest tehingutest ja tehingutest.

Silumisteabe genereerimisel kasutatakse vaikimisi vormingut DWARF 5, mis võrreldes varasemate versioonidega võimaldab luua silumisandmeid, mis on 25% kompaktsemad. DWARF 5 täielik tugi nõuab binutilsi vähemalt versiooni 2.35.2.

Tõhustatud ThreadSanitizer režiimi võimalused (-fsanitize = niit), kuna jahe lisab tuge alternatiivsetele käitustele ja keskkondadele, samuti tugi Kerneli samaaegse puhastamise (KCSAN) silumisvahendile, et tuvastada dünaamiliselt võistlustingimusi Linuxi kernelis. Lisatud on uued valikud „–param tsan-eristada-kõikuv“ ja „–param tsan-instrument-func-entry-exit“.

Vektorisaator pakub kogu funktsiooni sisu ja täiendavate töötlemisvõimaluste arvestust, mis on seotud juhtimisvoo (CFG) varasemate plokiviidete ja ristmikega.

Optimeerijal on võimalus teisendada tingimuslike toimingute jada muutuste avaldiseks, milles võrreldakse sama muutujat. Tulevikus saab muutuste avaldise kodeerida bititestimise juhiste abil (selle teisenduse juhtimiseks on lisatud valik "-fbit-tests").

C ++ puhul on rakendatud osa standardis C ++ 20 pakutud muudatustest ja uuendustest, sealhulgas virtuaalsed funktsioonid "consteval virtual", pseudohävitajad objektide elutsükli lõpetamiseks, loendiklasside kasutamine ja arvutamine massiivi suurus avaldises "uus".

Kui soovite selle kohta rohkem teada saada, saate üksikasju vaadata järgmine link. 


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  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.