Te tukunga o te huinga whakahiato LLVM 22

I muri i ngā marama e ono o te whanaketanga, kua tukuna te LLVM 22.1.0. Ka whakawhanakehia e ia ngā taputapu (ngā kaiwhakaemi, ngā kaiwhakaarotau, me ngā kaihanga waehere) e whakahiato ana i ngā kaupapa ki roto i te waehere waenga o ngā tohutohu mariko rite ki te RISC (he mīhini mariko taumata-iti me te pūnaha arotau maha-taumata). Ka taea te huri i te waehere rūpahu kua hangaia hei waehere mīhini mō tētahi tūāpapa ūnga kua hoatu, ka whakamahia rānei e te kaiwhakaemi wā-tika (JIT) hei whakaputa tohutohu mīhini tika i te wā e whakahaerehia ana te kaupapa. I runga i ngā hangarau LLVM, kei te whakawhanake te kaupapa i te kaiwhakaemi Clang, e tautoko ana i ngā reo hōtaka C, C++, me te Objective-C. Mai i te peka 18.x, ka huri te kaupapa ki tētahi kaupapa tau putanga hou, e ai ki te tukunga 0 ("N.0") ka whakamahia i te wā e whakawhanakehia ana, ā, ko te putanga pumau tuatahi kua tau "N.1."

I roto i nga whakapainga i Clang 22:

  • Kua tāpirihia te tautoko mō ngā tohu tohatoha mahara (Tohu Toha) hei tohu i ngā mahi tohatoha mahara e mahia ana mā te whakamahi i ngā mahi pēnei i te malloc me tētahi tohu ahurei. Mā ngā tohu tohatoha ka taea te hanga i ngā mōhiohio puranga, te whakahaere i te kitenga turuturu mahara, me te whakahohe i te whakarōpūtanga o ngā mea i runga i tā rātou kaupapa, i ngā tauira whakarerekētanga rānei (hei tauira, te wehewehe i ngā raraunga "wera" mai i te "makariri"). Hei whakahohe, whakamahia te haki "-fsanitize=alloc-token".
  • Ngā āhuatanga e pā ana ki te reo C:
    • Kua whakatinanahia he tauira whakatakotoranga e tautuhi ana i te tikanga whakatinanatanga whakaroa "whakaroa", e āhei ai te whakahaere i ngā mahi ina puta te whānuitanga o nāianei. Kua tāpirihia te haki "-fdefer-ts" hei whakahohe i te tautoko "whakaroa".
    • Kua tāpirihia te mahi ā-roto __builtin_stack_address(), he rite ki te mahi ōrite i roto i te GCC. Ka whakahokia mai e tēnei mahi te wāhitau puranga e wehe ana i te rohe puranga o te mahi o nāianei i karanga i te __builtin_stack_address() me ngā mahi e whai ake nei ka karangatia e ia.
  • Ko nga kaha e whakawhanakehia ana mo te paerewa C2y a meake nei:
    • Kua tāpirihia te tautoko mō ngā koropiko kua whakaingoatia, e āhei ai koe ki te tuku ingoa ki ngā koropiko me ngā tauākī whakawhiti, ka taea te tohu i roto i ngā tauākī whati me te haere tonu hei tautuhi mārama i te koropiko hei putanga atu. outer: for (int i = 0; i < IK; ++ i) { for (int j = 0; j < JK; ++ j) { continue; // go to CONT1 continue outer; // go to CONT2 // CONT1 } // CONT2 }
    • Kua whakawhānuihia te whakatinanatanga o te makaro "__COUNTER__" kua hangaia, i hangaia hei whakaputa ingoa tohu motuhake, ā, kua whakaurua ki roto i te paerewa. Kua whakatakotoria he rohenga o te 2147483647 karangatanga ki tēnei makaro; ki te nui atu i tēnei rohenga ka puta he hapa.
    • Kua tangohia te whakatūpato (-Wstatic-in-inline) ina whakamahia ana ngā mahi tūmau, ngā taurangi rānei i roto i ngā mahi kua whakapuakina hei "extern inline".
  • Nga kaha kua tautuhia ki te paerewa C23 C:
    • Ka tautokona e te kōnae pane float.h ngā makaro FLT_SNAN, DBL_SNAN, me LDBL_SNAN, e whakatinana ana i ngā uara NaN tohu (ka puta he okotahi ina whakamahia i roto i ngā mahi tātai) mō ngā momo float, takirua, me te takirua roa.
    • I whakatikahia tētahi hapa i te wā i whakaarohia ai ngā momo rerekē kāore i te ingoatia he hototahi i roto i te wae whakamāori kotahi mēnā he ōrite ngā āpure.
    • Ko te haki "-MG" i whakamahia hei whakakore i ngā kōnae pane ngaro i te wā o te matawai whakawhirinakitanga kua whakawhānuihia ki ngā tohutohu "#embed" ā, inaianei ka pehia te hapa "kōnae kāore i kitea" ina ngaro ana tētahi kōnae kua tohua i roto i te tohutohu "#embed".
  • Ko nga ahuatanga e pa ana ki te C++:
    • Kua tāpirihia te āheinga ki te whakamahi i ngā here hanganga i roto i te horopaki "constexpr", i whakawhanakehia i roto i te whakatakotoranga C++2c (C++26). Ko te tikanga o tēnei, ka taea e ngā tohutoro ki ngā kīanga pumau te noho hei kīanga pumau. Kua whakatinanahia te tautoko mō ngā rarangi me ngā hanganga māmā (kāore anō kia tautokona ngā tuple). constexpr int arr[] = {1, 2}; constexpr auto [x, y] = arr;
    • E ai ki te paerewa C++20, ka hurihia ngā here ki te āhua paerewa i mua i te tirotiro, kia tika ake ai ngā karere tātaritanga me te whakahaere tika i ngā hapa whakakapinga i roto i ngā tautohe tauira e whakamahia ana i roto i ngā concept-id anake.
    • Kua tāpirihia he whānau o ngā mahi kua hangaia "__builtin_[lt|gt|le|ge]_synthesizes_from_spaceship" hei kimi mēnā i hangaia ngā kaiwhakahaere whakatairite "<", ">", "<=", me ">=" mai i te kaiwhakahaere "<=>".
    • Kua whakarerekētia te tawhā "-Wincompatible-pointer-types" kia puta he hapa, kaua he whakatūpato. Hei hoki ki te whanonga o mua, whakamahia te kōwhiringa "-Wno-error=incompatible-pointer-types".
  • Kua tāpirihia ngā mahi ā-roto __builtin_bswapg, __builtin_elementwise_ldexp, __builtin_elementwise_fshl, __builtin_elementwise_fshr, __builtin_elementwise_minnumnum, __builtin_elementwise_maxnumnum, __builtin_masked_load, __builtin_masked_expand_load, __builtin_masked_store, __builtin_masked_compress_store, __builtin_masked_gather, __builtin_masked_scatter, me __builtin_dedup_pack. Hei tauira, mā te builtin_dedup_pack ka taea e koe te tango i ngā tāruarua mai i tētahi rārangi momo: mā te whakamahi i te MyTypeList = TypeList<__builtin_dedup_pack …>; // ko te momo hua ka waiho hei TypeList
  • Ina whakatikahia te whanonga kāore i tautuhia me te UBSan (-fsanitize=undefined -fsanitize-trap=undefined), kua whakaurua inaianei ngā mōhiohio take hapa ki ngā mōhiohio whakatika hapa kua hangaia. Kua tāpirihia te haki "-fsanitize-debug-trap-reasons" hei tohu i te taumata taipitopito i roto i ngā mōhiohio hapa. Ka taea te whakatakoto ki te "taketake" mō ngā whakaahuatanga whānui (hei tauira, "Kua taupua te tāpiritanga tauoti") me te "taipitopito" hei whakauru i ngā mōhiohio taipitopito (hei tauira, "kua taupua te tāpiritanga tauoti kua hainatia i roto i te 'a + b'").
  • Kua taapirihia nga haki whakahiato hou:
    • "-f[no-]sanitize-debug-trap-reasons" hei whakahaere mēnā kei roto ngā take mahanga hapa i ngā mōhiohio patuiro i te wā e whakahiato ana mā te aratau "-fsanitize-trap".
    • "-fsanitize=alloc-token", "-falloc-token-max", "-fsanitize-alloc-token-fast-abi", me "-fsanitize-alloc-token-extended" hei whakahaere i ngā tohu tohatoha mahara.
    • "-fmatrix-memory-layout" hei whakahaere i te tahora mahara o ngā momo matihiko (hei tauira, pou-matua mō te pou-matua, rarangi-matua mō te rarangi-matua).
  • Kei ngā mahi he huanga "malloc_span", he rite ki te huanga malloc engari e tika ana mō ngā mahi e whakahoki mai ana i ngā hanganga rite ki te whānuitanga kei roto he tohu me tētahi āpure me te rahi, he tohu rānei ki te pito o te poraka.
  • I tāpirihia te huanga "modular_format" hei tīpako hihiri i te whakatinanatanga hono pūmau e hiahiatia ana o te mahi printf i te wā hono.
  • Kua whakawhānuihia ngā taputapu tātaritanga me ngā taputapu tātaritanga tūmau, kua tāpirihia ngā arowhai hou (e hia ngā whakapainga e pā ana ki te tātaritanga).
  • Kua tāpirihia atu ngā āhuatanga ā-roto mō ngā toronga SSE, AVX, me AVX512 ki te pito o muri o te X86. Kua tāpirihia ngā aratau hanga mō ngā CPU Intel i runga i ngā hoahoanga moroiti o Wildcat Lake (-march=wildcatlake) me Nova Lake (-march=novalake).
  • Kei te tautokohia e te pito o muri o AArch64 ngā tukatuka Ampere Computing Ampere1C (ampere1c), Arm C1-Nano (c1-nano), Arm C1-Pro (c1-pro), Arm C1-Premium (c1-premium), me Arm C1-Ultra (c1-ultra). Kua tāpirihia ētahi atu mahi kua hangaia mō ngā tohutohu FCVTZ[US], FCVTN[US], FCVTM[US], FCVTP[US], me FCVTA[US]. Kua whakapūmautia te tautoko Function Multi-Versioning (FMV). Ka taea e ngā kaiwhakamahi te whakakore i te kaupapa matua o ngā putanga mahi rerekē.
  • Kua tāpirihia te tautoko mō te hoahoanga o LoongArch32 (LA32R, LA32S).
  • Ngā pito whakamuri kua whakapaitia mō ngā hoahoanga ARM, AMDGPU, RISC-V, LoongArch64, MIPS, WebAssembly, me PowerPC.

Source: opennet.ru

Hokona te manaaki pono mo nga waahi me te tiaki DDoS, nga kaiwhakarato VPS VDS 🔥 Hokona he manaaki paetukutuku pono me te tiakitanga DDoS, ngā tūmau VPS VDS | ProHoster