Siideynta LLVM 22 compiler suite

Lix bilood oo horumar ah ka dib, LLVM 22.1.0 ayaa la sii daayay. Waxay horumarisaa qalab (ururiyeyaal, hagaajiyeyaal, iyo matoorro kood) kuwaas oo barnaamijyada u soo ururiya bitcode dhexdhexaad ah oo ah tilmaamo dalwaddeed oo u eg RISC (mashiin dalwaddeed oo heer hoose ah oo leh nidaam hagaajin heer badan leh). Koodhka beenta ah ee la soo saaray waxaa loo rogi karaa koodhka mashiinka ee goob bartilmaameed ah ama waxaa isticmaali kara isku-darka waqtiga-dhabta ah (JIT) si loo soo saaro tilmaamaha mashiinka si toos ah inta lagu jiro fulinta barnaamijka. Iyada oo ku saleysan teknoolojiyada LLVM, mashruucu wuxuu horumarinayaa isku-darka Clang, isagoo taageeraya luqadaha barnaamijyada C, C++, iyo Objective-C. Laga bilaabo laanta 18.x, mashruucu wuxuu u wareegayaa nidaam lambar nooc cusub ah, kaas oo siideynta 0 ("N.0") loo isticmaalo inta lagu jiro horumarinta, nooca ugu horreeya ee degganna waxaa lagu tiriyaa "N.1."

Waxaa ka mid ah horumarinta Clang 22:

  • Taageero lagu daray calaamadaha qoondaynta xusuusta (Astaamaha Qoondaynta) si loogu calaamadeeyo hawlgallada qoondaynta xusuusta ee la sameeyay iyadoo la adeegsanayo hawlo sida malloc oo leh aqoonsi gaar ah. Calaamadaha qoondaynta waxay u oggolaanayaan qaabaynta macluumaadka tuulmada, fududaynta ogaanshaha daadashada xusuusta, iyo awood u siinta kooxaynta walxaha iyadoo lagu salaynayo ujeeddadooda ama qaababka wax ka beddelka (tusaale ahaan, kala soocida xogta "kulul" iyo "qabow"). Si aad u awoodsiiso, isticmaal calanka "-fsanitize=alloc-token".
  • Astaamaha la xiriira luqadda C:
    • Qeexitaan qabyo ah oo qeexaya habka fulinta dib u dhigista ee "dib u dhigista" ayaa la hirgeliyay, taasoo u oggolaanaysa tallaabooyinka in la fuliyo marka baaxadda hadda jirta ay ka baxdo. Calanka "-fdefer-ts" ayaa lagu daray si loo suurtogeliyo taageerada "dib u dhigista".
    • Shaqada ku dhex jirta __builtin_stack_address() ayaa lagu daray, taasoo muujinaysa shaqada la mid ah ee GCC. Shaqadani waxay soo celisaa cinwaanka isku-xidhka oo kala soocaya aagga isku-xidhka ee shaqada hadda jirta ee loo yaqaan __builtin_stack_address() iyo hawlaha xiga ee uu waco.
  • Awoodaha loo horumarinayo heerka mustaqbalka ee C2y:
    • Taageero lagu daray wareegyada la magacaabay, taas oo kuu ogolaanaysa inaad magacyo u qoondayso wareegyada iyo weedhaha beddela, kuwaas oo lagu qeexi karo weedhaha jebinta iyo sii wadida si si cad loogu qeexo wareegga laga baxayo. dibadda: for (int i = 0; i < IK; ++ i) { for (int j = 0; j < JK; ++ j) { sii wad; // tag CONT1 sii wad dibadda; // tag CONT2 // CONT1 } // CONT2 }
    • Hirgelinta macro-ka ku dhex jira "__COUNTER__", oo loogu talagalay in lagu soo saaro magacyo aqoonsi oo gaar ah, ayaa la ballaariyay oo lagu daray heerka. Xadka wicitaanada 2147483647 ee macro-kan ayaa la dejiyay; ka gudubka xadkan wuxuu abuuri doonaa qalad.
    • Digniinta laga saaray (-Wstatic-in-inline) marka la isticmaalayo shaqooyinka taagan ama doorsoomayaasha gudaha hawlaha lagu dhawaaqay inay yihiin "inline dibadda ah".
  • Awoodaha lagu qeexay heerka C23 C:
    • Faylka cinwaanka float.h hadda wuxuu taageeraa makrosyada FLT_SNAN, DBL_SNAN, iyo LDBL_SNAN, kuwaas oo hirgeliya qiimaha NaN ee noocyada labajibbaaran, labajibbaaran, iyo kuwa dheer.
    • Waxaa la hagaajiyay cillad halkaas oo noocyo kala duwan oo aan la magacaabin loola dhaqmay inay ku habboon yihiin cutubka turjumaadda isku mid ah haddii ay lahaayeen goobo isku mid ah.
    • Calanka "-MG" ee loo isticmaalo in lagu iska indho tiro faylasha madaxa ee maqan inta lagu jiro baaritaanka ku-tiirsanaanta ayaa loo fidiyay tilmaamaha "#embed" haddana wuxuu xakameynayaa qaladka "faylka lama helin" marka fayl lagu qeexay tilmaamaha "#embed" uu maqan yahay.
  • C++ sifooyinka la xidhiidha:
    • Awoodda loo leeyahay in lagu isticmaalo isku xidhka qaabaysan ee macnaha guud ee "constexpr", sida lagu sameeyay qeexitaanka C++2c (C++26), ayaa lagu daray. Taas macnaheedu waa in tixraacyada tibaaxaha joogtada ah hadda laftoodu ay noqon karaan tibaaxo joogto ah. Taageerada waxaa loo hirgeliyaa taxanaha iyo qaab-dhismeedka fudud (tuples weli lama taageerin). constexpr int arr[] = {1, 2}; constexpr auto [x, y] = arr;
    • Sida uu qabo heerka C++20, xaddidaadaha hadda waxaa loo beddelaa qaabka caadiga ah ka hor inta aan la hubin, taasoo u oggolaanaysa farriimaha ogaanshaha ee saxda ah iyo maaraynta saxda ah ee khaladaadka beddelka ah ee doodaha qaab-dhismeedka ee loo isticmaalo oo keliya fikradaha-aqoonsiga.
    • Waxaa lagu daray qoys ka kooban shaqooyin gudaha ku jira "__builtin_[lt|gt|le|ge]_synthesizes_from_spaceship" si loo ogaado in hawl wadeennada isbarbardhigga "<", ">", "<=", iyo ">=" laga soo saaray hawl wadeenka "<=>".
    • Halbeegga "-Wincompatible-pointer-types" ayaa la beddelay si uu u soo saaro qalad halkii uu ka ahaan lahaa digniin. Si aad ugu noqoto dhaqankii hore, isticmaal ikhtiyaarka "-Wno-error=incompatible-pointer-types".
  • Hawlaha ku dhex jira waxaa lagu daray __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, iyo __builtin_dedup_pack. Tusaale ahaan, builtin_dedup_pack wuxuu kuu ogolaanayaa inaad ka saarto nuqullo ka mid ah liiska noocyada: adoo isticmaalaya MyTypeList = TypeList<_builtin_dedup_pack ...>; // nooca ka soo baxaya wuxuu noqon doonaa TypeList
  • Marka la saxo hab-dhaqanka aan la qeexin ee UBSan (-fsanitize=undefined -fsanitize-trap=undefined), macluumaadka sababta khaladka hadda waxaa lagu daray macluumaadka khaladka la soo saaray. Calanka "-fsanitize-debug-trap-reasons" ayaa lagu daray si loo qeexo heerka faahfaahinta macluumaadka khaladka. Waxaa loo dejin karaa "aasaasi" sharraxaadda guud (tusaale ahaan, "Ku darista Integer-ka oo buux dhaaftay") iyo "faahfaahin" si loogu daro macluumaad faahfaahsan (tusaale ahaan, "ku darista Integer-ka ee saxiixan ee buux dhaaftay 'a + b'").
  • Lagu daray calamada iskudubaridyada cusub:
    • "-f[no-]sanitize-debug-trap-reasons" si loo xakameeyo in sababaha dabinnada ka-reebista ay ku jiraan macluumaadka khaladaadka marka la ururinayo qaabka "-fsanitize-trap".
    • "-fsanitize=alloc-token", "-falloc-token-max", "-fsanitize-alloc-token-fast-abi", iyo "-fsanitize-alloc-token-extended" si loo maareeyo calaamadaha qaybinta xusuusta.
    • "-fmatrix-memory-layout" si loo xakameeyo qaab-dhismeedka xusuusta ee noocyada matrix-ka (tusaale ahaan tiir-major ee tiir-major, tiir-major ee tiir-major).
  • Functions hadda waxay leeyihiin sifada "malloc_span", oo la mid ah sifada malloc laakiin waxay khuseysaa hawlaha soo celiya qaab-dhismeedyada u eg span-ka oo ka kooban tilmaame iyo goob leh cabbirka ama tilmaame dhammaadka baloogga.
  • Waxaa lagu daray sifada "modular_format" si ay si firfircoon u doorato hirgelinta isku xiran ee loo baahan yahay ee shaqada daabacaadda wakhtiga isku xirka.
  • Qalabka falanqaynta ogaanshaha iyo kuwa aan joogtada ahayn ayaa la ballaariyay, baaritaanno cusub ayaa lagu daray (dhowr darsin oo horumarro la xiriira ogaanshaha ah).
  • Qalab dheeraad ah oo loogu talagalay kordhinta SSE, AVX, iyo AVX512 ayaa lagu daray dhabarka dambe ee X86. Qaababka dhismaha ayaa lagu daray Intel CPUs oo ku salaysan Wildcat Lake (-march=wildcatlake) iyo Nova Lake (-march=novalake) microarchitectures.
  • Dhabarka dambe ee AArch64 hadda wuxuu taageeraa Ampere Computing Ampere1C (ampere1c), Arm C1-Nano (c1-nano), Arm C1-Pro (c1-pro), Arm C1-Premium (c1-premium), iyo Arm C1-Ultra (c1-ultra). Hawlo dheeraad ah oo ku dhex jira ayaa lagu daray tilmaamaha FCVTZ[US], FCVTN[US], FCVTM[US], FCVTP[US], iyo FCVTA[US]. Taageerada Function Multi-Versioning (FMV) waa la dejiyay. Isticmaalayaashu hadda way ka gudbi karaan mudnaanta noocyada shaqada ee kala duwan.
  • Taageero lagu daray qaab-dhismeedka LoongArch32 (LA32R, LA32S).
  • Gadaal-celin la hagaajiyay oo loogu talagalay qaab-dhismeedka ARM, AMDGPU, RISC-V, LoongArch64, MIPS, WebAssembly, iyo PowerPC.

Source: opennet.ru

U soo iibso martigelin lagu kalsoonaan karo oo loogu talagalay bogagga leh ilaalinta DDoS, VPS VDS servers πŸ”₯ Iibso martigelin degel oo lagu kalsoonaan karo oo leh ilaalinta DDoS, VPS VDS servers | ProHoster