Te tukunga o te huinga whakahiato GCC 12

I muri i te tau o te whakawhanaketanga, kua tukuna te huinga whakahiato koreutu GCC 12.1, te tukunga nui tuatahi i te peka hou GCC 12.x. I runga ano i te kaupapa nama tuku hou, i whakamahia te putanga 12.0 i roto i te tukanga whanaketanga, a i mua tata i te tukunga o te GCC 12.1, kua peka ke te peka o te GCC 13.0, i runga i te kaupapa ko te tukunga nui e whai ake nei, GCC 13.1, ka puta. kia hanga. Hei te 23 o Mei, ka whakanui te kaupapa i nga tau 35 mai i te hanganga o te putanga tuatahi o GCC.

Nga huringa matua:

  • He tautoko taapiri mo te whakatakotoranga patuiro CTF (Whakaahua Momo Kiato), e whakarato ana i te rokiroki kiato o nga korero mo nga momo C, nga hononga i waenga i nga mahi me nga tohu patuiro. Ina whakauruhia ki roto i nga taonga ELF, ka taea e te whakatakotoranga te whakamahi i nga ripanga tohu EFL hei karo i te taarua raraunga.
  • Ko te tautoko mo te whakatakotoranga rokiroki korero patuiro "STABS", i hangaia i nga tau 1980, kua whakakorehia.
  • Kei te haere tonu nga mahi ki te whakawhānui ake i te tautoko mo nga paerewa C2X me C++23 a muri ake nei mo nga reo C me C++. Hei tauira, kua taapirihia te tautoko mo te kupu "mehemea consteval"; whakaaetia ki te whakamahi aunoa i roto i nga tautohe mahi ("f(aunoa(g()))"); ka whakaaetia te whakamahi i nga taurangi kore-reo, goto me nga tapanga i roto i nga mahi kua kiia hei constexpr; he tautoko taapiri mo nga kaiwhakahaere taupū maha []; i te mea, mo me te whakawhiti, kua whakawhänuihia nga kaha o nga poraka arawhiti (“mo (ma te T = int; T e : v)”).
  • Ko te C++ Standard Library kua pai ake te tautoko mo nga waahanga whakamatautau o nga paerewa C++20 me C++23. He tautoko taapiri mo te std::move_only_function, , std::kumu_taketake::whakaahua_me_tuhirua, , me te std::invoke_r. Whakaaetia ki te whakamahi i te std::unique_ptr, std::vector, std::basic_string, std::kōwhiringa me te std::rereke i roto i nga mahi constexpr.
  • Ko te waahanga o mua o Fortran he tautoko katoa mo te tohu TS 29113, e whakaatu ana i nga kaha ki te whakarite i te kawe i waenga i te Fortran me te waehere C.
  • He tautoko taapiri mo te toronga __builtin_shufflevector(vec1, vec2, index1, index2, ...) i taapiri atu ki Clang, e tuku ana i te waea kotahi ki te mahi i nga mahi riwhi me te riwhi noa.
  • I te wa e whakamahi ana i te taumata arotautanga "-O2", ka whakahohea te vectorization ma te taunoa. Ko te tauira tino-iti ka taea te vectorization mena ka taea e te waehere vector te whakakapi katoa i te waehere scalar e vectorized.
  • I taapirihia te aratau "-ftrivial-auto-var-init" kia taea ai te arawhitinga marama o nga taurangi i runga i te taapu ki te whai i nga take me te aukati i nga whakaraeraetanga e pa ana ki te whakamahi i nga taurangi koretake.
  • Mo nga reo C me C++, kua taapirihia he mahi hanga __builtin_dynamic_object_size hei whakatau i te rahi o tetahi mea, he hototahi ki tetahi mahi rite mai i a Clang.
  • Mo nga reo C me C++, kua taapirihia te tautoko mo te huanga "kare e waatea" (hei tauira, ka taea e koe te tohu i nga mahi ka puta he hapa mena ka ngana koe ki te whakamahi).
  • Mo nga reo C me C++, kua taapirihia te tautoko mo nga tohutohu tukatuka "#elifdef" me "#elifndef".
  • Kua taapirihia te haki "-Wbidi-chars" ki te whakaatu i te whakatupato mena ka he te whakamahi i nga tohu UTF-8, ka huri i te raupapa e whakaatu ana i nga kuputuhi ararua.
  • Kua taapirihia te haki "-Warray-compare" hei whakaatu i te whakatupato i te wa e ngana ana ki te whakatairite i nga operan e rua e tohu ana ki nga raupapa.
  • Ko te whakatinanatanga o nga paerewa OpenMP 5.0 me te 5.1 (Tuwhera Maha-Tukatuka), e tautuhi ana i te API me nga tikanga mo te tono tikanga whakarara i runga i nga punaha maha-matua me te ranu (CPU+GPU/DSP) me te tiritiri o te mahara me nga waeine vectorization (SIMD) , kua haere tonu.
  • Kua pai ake te whakatinanatanga o te OpenACC 2.6 whakarara whakarara whakatakotoranga hotaka, e tautuhi ana i nga taputapu mo te whakaheke i nga mahi ki runga i nga GPU me nga kaiwhakatikatika motuhake penei i a NVIDIA PTX.
  • Tautoko mo nga tohutohu roa Intel AVX86-FP512 me te momo _Float16 kua taapirihia ki te whakangao waehere whakamuri mo te hoahoanga x16.
  • Mo te hoahoanga x86, kua taapirihia te whakamarumaru ki nga whakaraeraetanga i roto i nga kaiwhakatikatika na te whakatinanatanga o nga tohutohu i muri i nga mahi peke whakamua. Ka puta te raruraru na te tukatuka i mua i nga tohutohu i muri tonu i te tohutohu peka i roto i te mahara (SLS, Tikanga Raina Tika). Kia taea ai te whakamarumaru, ka tukuna te whiringa "-mharden-sls".
  • Kua taapirihia te kitenga o te whakamahinga o nga taurangi kaore i te maarama ki te kaitirotiro pateko whakamatautau. I taapirihia te tautoko tuatahi mo te tātari waehere huihuinga i roto i nga whakaurunga raarangi. Kua pai ake te aroturuki mahara. Kua tuhia ano te waehere mo te tukatuka kupu whakawhiti.
  • Kua taapirihia nga waea hou 30 ki te libgccjit, he whare pukapuka tiritahi mo te whakauru i te kaihanga waehere ki etahi atu tukanga me te whakamahi hei JIT whakahiato bytecode ki te waehere miihini.
  • Ko te tautoko mo te CO-RE (Compile Once - Run Everywhere) kua taapirihia ki te tuara mo te whakaputa BPF bytecode, e taea ai e koe te whakahiato i te waehere o nga kaupapa eBPF mo te kernel Linux kotahi anake ka whakamahi i tetahi utauta mo te ao motuhake e urutau ana te kua utaina te papatono ki te kakano o naianei me te Whakaputu Momo BPF). Ka whakatauhia e te CO-RE te raru o te kawe o nga kaupapa eBPF kua whakahiato, ka taea noa te whakamahi i roto i te putanga o te kernel i whakahiatohia ai, na te mea ka huri te tuunga o nga huānga i roto i nga hanganga raraunga mai i te putanga ki te putanga.
  • Ko te tuara RISC-V he taapiri tautoko mo nga toronga hoahoanga huinga ako hou zba, zbb, zbc me zbs, tae atu ki nga toronga ISA mo nga mahi tohu tohu me te scalar. Ma te taunoa, ka whakaratohia te tautoko mo te RISC-V ISA 20191213. Kua taapirihia te haki -mtune=thead-c906 kia taea ai te arotautanga mo nga matua T-HEAD c906.
  • Ko te tautoko mo te momo __int128_t/integer(ahua=16) kua taapirihia ki te tuara whakangao waehere mo nga GPU AMD i runga i te GCN microarchitecture. Ka taea te whakamahi ki runga ki te 40 nga roopu mahi mo ia wae rorohiko (CU) me te 16 o mua tohutohu (wavefront, he huinga miro ka mahia i roto i te whakarara e te SIMD Engine) mo ia roopu. I mua, kotahi noa te mata tohutohu mo ia CU i whakaaetia.
  • Ko te tuara NVPTX, i hangaia hei whakaputa waehere ma te whakamahi i te hoahoanga huinga tohutohu NVIDIA PTX (Parallel Thread Execution), kua taapirihia te kaha ki te whakamahi i nga haki "-march", "-mptx" me "-march-map". I whakatinanahia te tautoko mo PTX ISA sm_53, sm_70, sm_75 me sm_80. Ko te hoahoanga taunoa ko sm_30.
  • I te tuara mo nga tukatuka PowerPC / PowerPC64 / RS6000, kua tuhia ano nga whakatinanatanga o nga mahi hanga-i roto. Ko nga mahi hanga-i roto __builtin_get_texasr, __builtin_get_texasru, __builtin_get_tfhar, __builtin_get_tfiar, __builtin_set_texasr, __builtin_set_texasru, __builtin_set_tfhar me __builtin_seted.
  • Tautoko mo Arm Ampere-64 (-mcpu/-mtune ampere1), Arm Cortex-A1 (cortex-a510), Arm Cortex-A510 (cortex-a710) me Arm Cortex-X710 (cortex- x2). He tautoko taapiri mo nga whiringa hoahoanga ARMv2 hou hei whakamahi me te whiringa "-march": armv8-a, armv8.7-a, armv8.8-a. Ko te whakaurunga o nga mahi C i hangaia ki roto i te whakahiato (Intrinsics) mo te uta ngota me te penapena raraunga ki te mahara, i runga i te whakamahinga o nga tohutohu ARM roa (ls9). He tautoko taapiri mo te whakatere i nga mahi memcpy, memmove me te memset ma te whakamahi i te toronga ARM mopsoption.
  • Kua taapirihia he aratau tirotiro hou "-fsanitize=shadow-call-stack" (ShadowCallStack), kei te waatea noa mo te hoahoanga AArch64 me te mahi i te wa e hanga ana te waehere me te "-ffixed-r18" kōwhiringa. Ko te aratau he whakamarumaru ki te tuhirua i te wahitau whakahoki mai i tetahi mahi mena ka puhake te papaa i runga i te puranga. Ko te ngako o te whakamarutanga ko te tiaki i te wahitau whakahoki i roto i te puranga "atarangi" motuhake i muri i te whakawhiti mana ki tetahi mahi me te tango i tenei wahitau i mua i te puta atu i te mahi.

Source: opennet.ru

Tāpiri i te kōrero