Ang GCC 11.1 ay pinakawalan na, ito ang pinakamahalagang balita at pagbabago

Pagkatapos ng isang taon ng pag-unlad, Inilabas ang bagong bersyon ng compiler ng GCC 11.1, ang unang makabuluhang paglabas sa bagong sangay ng GCC 11.x. Sa ilalim ng bagong scheme ng pagnunumero ng bersyon, ginamit ang bersyon 11.0 sa panahon ng pag-unlad, at ilang sandali bago mailabas ang GCC 11.1, ang isang sangay ng GCC 12.0 ay tinidor na upang mabuo ang susunod na pangunahing bersyon ng GCC 12.1.

Ang GCC 11.1 ay nakatayo para sa paglipat sa default na format ng pag-debug ng file na DWARF 5, ang default na pagsasama ng pamantayan ng C ++ 17 ("-std = gnu ++ 17"), mga makabuluhang pagpapabuti sa pagiging tugma sa pamantayan ng C ++ 20, pang-eksperimentong suporta para sa C ++ 23, mga pagpapabuti na nauugnay sa pamantayan sa hinaharap ng ang wikang C (C2x), mga bagong pag-optimize sa pagganap.

GCC 11.1 Pangunahing Mga Bagong Tampok

Ang default mode para sa wikang C ++ ay binago upang magamit ang pamantayan ng C ++ 17, sa halip na ang dating iminungkahing C ++ 14. Posibleng piliing hindi paganahin ang bagong pag-uugali ng C ++ 17 kapag pinoproseso ang mga template na gumagamit ng iba pang mga template bilang isang parameter (-fno-new-ttp-matching).

Nagdagdag ng suporta para sa pagpabilis ng hardware ng tool ng AddressSanitizer, na nagbibigay-daan sa iyo upang matukoy ang mga katotohanan ng pag-access sa mga napalaya na lugar ng memorya, lumalagpas sa mga limitasyon ng inilaang buffer, at ilang iba pang mga uri ng mga error kapag nagtatrabaho sa memorya. Sa kasalukuyan, ang pagpabilis ng hardware ay magagamit lamang para sa arkitekturang AArch64 at nakatuon sa paggamit nito kapag nag-iipon ng kernel ng Linux.

Ang isa pang bagong novelty na ipinakita ay ang mga pag-optimize at pagpapabuti sa pagitan ng mga pamamaraan, bilang isang bagong IPA-modref pass naidagdag (-fipa-modref) upang subaybayan ang mga epekto sa mga tawag sa pag-andar at pagbutihin ang kawastuhan ng pagtatasa. Bukod din a pinabuting pagpapatupad ng IPA-ICF pass (-fipa-icf), na binabawasan ang pagkonsumo ng compilation memory at pinapataas ang bilang ng mga pinag-isang pag-andar kung saan ang magkaparehong mga bloke ng code ay pinagsama.

El engine na pag-optimize na hinihimok ng profile (PGO), pinahusay na mode na "-fprofile-values" sa pamamagitan ng pagsubaybay ng mas maraming mga parameter para sa hindi direktang mga tawag.

Rin Ang patuloy na pagpapatupad ng pamantayang OpenMP 5.0 ay nai-highlight (Buksan ang Multi-Processing), kung saan nagdagdag ng paunang suporta para sa direktiba ng pagtatalaga at ang kakayahang gumamit ng mga hindi pantay na mga loop sa OpenMP build. Sinusuportahan na ngayon ang variable na kapaligiran ng OMP_TARGET_OFFLOAD.

Ang pagpapatupad ng OpenACC 2.6 parallel na pagtutukoy ng programa na ibinigay para sa mga wikang C, C ++ at Fortran, na tumutukoy sa mga tool para sa pagpapatakbo ng pag-offload sa mga GPU at dalubhasang mga processor tulad ng NVIDIA PTX, ay napabuti.

Para sa mga wika ng pamilya C, isang bagong katangian na "no_stack_protector" ay ipinatupad, idinisenyo upang markahan ang mga pagpapaandar kung saan hindi dapat paganahin ang proteksyon ng stack ("-fstack-protector"). Ang katangiang "malloc" ay pinalawig kasama ng suporta para sa pagkilala ng mga pares ng mga tawag upang maglaan at libreng memorya, na ginagamit sa static parser upang makita ang mga tipikal na error sa memorya (paglabas ng memorya, paggamit pagkatapos ng libreng, doble na tawag sa libreng pagpapaandar, atbp.) at mga babalang tagatala ng "-Wmismatched-dealloc", "-Wmismatched- new-delete" at " -Wfree-nonheap-object "pag-uulat ng hindi pare-pareho na mga operasyon ng deallocation at deallocation.

Kapag bumubuo ng impormasyon sa pag-debug, ang format na DWARF 5 ay ginagamit bilang default, na kung ihahambing sa mga nakaraang bersyon, pinapayagan ang pagbuo ng data ng pag-debug na 25% na mas compact. Ang buong suporta ng DWARF 5 ay nangangailangan ng mga binutil na hindi bababa sa bersyon 2.35.2.

Pinahusay na mga kakayahan sa ThreadSanitizer mode (-fsanitize = thread), dahil ooNagdagdag ng suporta para sa mga alternatibong runtime at kapaligiran, pati na rin ang suporta para sa tool sa pag-debug ng Kernel Concurrency Sanitizer (KCSAN) upang ma-dynamic na makita ang mga kondisyon ng lahi sa loob ng Linux kernel. Ang mga bagong pagpipilian na "–param tsan-makilala-pabagu-bago" at "–param tsan-instrumento-func-entry-exit" ay naidagdag.

Ang vectorizer ay nagbibigay ng accounting ng lahat ng nilalaman ng pagpapaandar at ang karagdagang pagproseso ng mga kakayahan na nauugnay sa mga interseksyon at sanggunian sa mga nakaraang bloke sa control flow chart (CFG).

Ang optimizer ay may kakayahang i-convert ang isang serye ng mga kondisyonal na pagpapatakbo sa isang expression ng pagbabago, kung saan inihambing ang parehong variable. Sa hinaharap, ang expression ng pagbabago ay maaaring naka-encode gamit ang mga tagubilin sa pagsubok ng bit (upang makontrol ang conversion na ito, naidagdag ang pagpipiliang "-fbit-test").

Para sa C ++, isang bahagi ng mga pagbabago at inobasyon na iminungkahi sa pamantayang C ++ 20 ay ipinatupad, kasama ang virtual na pag-andar na "consteval virtual", mga pseudo-destroyer para sa pagwawakas ng siklo ng buhay ng mga bagay, gamit ang enum class at pagkalkula ang laki ng isang array sa ekspresyong "bago".

Kung nais mong malaman ang tungkol dito, maaari mong suriin ang mga detalye sa ang sumusunod na link. 


Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.