GCC 11.1 on jo julkaistu, nämä ovat sen tärkeimmät uutiset ja muutokset

Vuoden kehityksen jälkeen GCC 11.1 -kääntäjäpaketin uusi versio julkaistu, ensimmäinen merkittävä julkaisu uudessa GCC 11.x -haarassa. Uuden versionumerointijärjestelmän mukaan versiota 11.0 käytettiin kehityksen aikana, ja vähän ennen GCC 11.1: n julkaisua GCC 12.0: n haara oli jo haarautunut muodostamaan seuraava pääversio GCC 12.1: stä.

GCC 11.1 erottuu siirtymisestä virheenkorjaustiedostomuotoon DWARF 5, oletusarvoinen C ++ 17 -standardin sisällyttäminen ("-std = gnu ++ 17"), merkittävät parannukset yhteensopivuuteen C ++ 20 -standardin kanssa, kokeellinen tuki C ++ 23: lle, parannukset tulevaan standardiin C-kieli (C2x), uudet suorituskyvyn optimoinnit.

GCC 11.1 Tärkeimmät uudet ominaisuudet

C ++ - kielen oletustila muutetaan käyttämään C ++ 17 -standardia, aiemmin ehdotetun C ++ 14: n sijaan. Uusi C ++ 17 -käytäntö voidaan poistaa valikoivasti käytöstä, kun käsitellään malleja, jotka käyttävät muita malleja parametrina (-fno-new-ttp-matching).

Lisätty tuki laitteistokiihdytykselle AddressSanitizer-työkalun, jonka avulla voit määrittää vapautettujen muistialueiden käytön tosiasiat, ylitetyn puskurin rajojen ylityksen ja joitain muita virheitä, kun työskentelet muistin kanssa. Tällä hetkellä laitteistokiihdytys on käytettävissä vain AArch64-arkkitehtuurille, ja se keskittyy sen käyttöön, kun käännetään Linux-ydintä.

Toinen uutuus, joka esitetään, ovat optimoinnit ja parannukset menettelyjen välillä, kun uusi IPA-modref-passi lisättiin (-fipa-modref) seurata sivuvaikutuksia toimintakutsuissa ja parantaa analyysin tarkkuutta. Lisäksi myös a IPA-ICF-passin parempi toteutus (-fipa-icf), mikä vähentää kokoamismuistin kulutusta ja lisää niiden yhtenäisten toimintojen määrää, joille identtiset koodilohkot yhdistetään.

El profiiliin perustuva optimointimoottori (PGO), parannettu "-profiili-arvot" -tila seuraamalla lisää epäsuorien puheluiden parametreja.

myös OpenMP 5.0 -standardin jatkuva käyttöönotto on korostettu (Open Multi-Processing), jossa lisäsi alkuperäisen tuen määritysdirektiiville ja kyvyn käyttää epätasaisia ​​silmukoita OpenMP-rakennelmissa. YMP-muuttujaa OMP_TARGET_OFFLOAD tuetaan nyt.

C-, C ++ - ja Fortran-kielille tarjotun rinnakkaisohjelmoinnin OpenACC 2.6 -määrittelyä, joka määrittelee työkalut toiminnan siirtämiseksi GPU: ille ja erikoistuneille prosessoreille, kuten NVIDIA PTX, on parannettu.

C-perheen kielille on määritetty uusi attribuutti "no_stack_protector", suunniteltu merkitsemään toiminnot, joille pinon suojausta ei pitäisi ottaa käyttöön ("-fstack-protector"). "Malloc" -määritettä on laajennettu tukemalla muistipuheluparien tunnistamista ja vapauttamista, jota käytetään staattisessa jäsentimessä tyypillisten muistivirheiden (muistivuodot, käyttö ilmaisen käytön jälkeen, kaksoiskutsut ilmaiseen toimintoon jne.) ja kääntäjän varoituksiin "-Wmismatched-dealloc", "-Wmismatched- new-delete" ja " -Vapaa-nonheap-objekti -raportti epäjohdonmukaisista kauppapaikoista.

Virheenkorjaustietoja luodessa käytetään oletusarvoisesti DWARF 5 -muotoa, joka edellisiin versioihin verrattuna mahdollistaa 25% pienemmän vianetsintätiedon luomisen. Täysi DWARF 5 -tuki vaatii binutilsin vähintään version 2.35.2.

Parannetut ThreadSanitizer-tilan ominaisuudet (-fsanitize = säie), koska kylläe lisää tukea vaihtoehtoisille käyttöajoille ja ympäristöille, samoin kuin tuki Kernel Concurrency Sanitizer (KCSAN) -vianetsintätyökalulle, joka tunnistaa dynaamisesti kilpailuolosuhteet Linux-ytimessä. Uudet vaihtoehdot "–param tsan-erottaa-haihtuvat" ja "-param tsan-instrumentti-func-merkinnät-poistuvat" on lisätty.

Vektorointilaite tarjoaa toiminnon kaiken sisällön kirjanpidon ja leikkauksiin liittyvien ominaisuuksien lisäkäsittelyn ja viitteet edellisiin lohkoihin ohjauskaaviossa (CFG).

Optimoijalla on kyky muuntaa ehdollisten operaatioiden sarja muutoslausekkeeksi, jossa samaa muuttujaa verrataan. Tulevaisuudessa muutoslauseke voidaan koodata bittitestausohjeilla (tämän muunnoksen hallitsemiseksi on lisätty "-fbit-tests" -vaihtoehto).

C ++: n osalta on toteutettu joitain C ++ 20 -standardissa ehdotettuja muutoksia ja innovaatioita, mukaan lukien virtuaalitoiminnot "consteval virtual", näennäishävittäjät esineiden elinkaaren lopettamiseksi, enum-luokan käyttäminen ja taulukon koko lausekkeessa "uusi".

Jos haluat tietää enemmän siitä, voit tarkistaa yksityiskohdat seuraava linkki. 


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.