I-LLVM 16.0 futhi yakhululwa futhi lezi yizindaba zayo

Ilogo ye-LLVM

I-LLVM iwuhlaka lokuthuthukisa abahlanganisi kanye nokusiza ukwakha izilimi zokuhlela ezintsha nokuthuthukisa izilimi ezikhona.

Ngemva nje kwezinyanga eziyisithupha zokuthuthuka, ukwethulwa kwe- inguqulo entsha yephrojekthi LLVM 16.0, inguqulo lapho inani elikhulu lezinguquko nokuthuthukiswa okwenziwa khona.

Kulabo abangayijwayele i-LLVM, kufanele wazi ukuthi lokhu ingumqambi ohambisana ne-GCC (abadidiyeli, izilungiseleli, nezikhiqizi zekhodi) ezihlanganisa izinhlelo zibe yibhithikhodi emaphakathi yokufundisa efana ne-RISC (umshini wezinga eliphansi onohlelo lokwenza amaleveli amaningi).

I-pseudocode ekhiqiziwe ingashintshwa yi-JIT compiler ibe imiyalelo yomshini ngesikhathi sokwenziwa kohlelo.

Izici ezintsha eziyinhloko ze-LLVM 16.0

Kule nguqulo entsha ethulwayo, singathola ukuthuthukiswa okumbalwa okubalulekile ngo-clang 16.0, okuyizinga elizenzakalelayo le-C++/ObjC++ eligqamayo, okuyilo isethwe ku-gnu++17 (ngaphambilini okwakuyi-gnu++14), okuyinto kusho ukusekelwa kwezici ze-C++17 ezinezandiso ze-GNU ngokuzenzakalela. Ukusetshenziswa kwezinto ezichazwe ezingeni le-C++17 kuvunyelwe kukhodi ye-LLVM.

Olunye ushintsho olugqamayo ukuthi selufakiwe ukusekelwa kwe-Cortex-A715, Cortex-X3 kanye ne-Neoverse CPUs I-V2, izandiso ze-Armv8.3 nezici zenguqulo eminingi ku-backend ye-AArch64.
La ukuhambisana yesikhulumi I-Armv2, i-Armv2A, i-Armv3 ne-Armv3M ayiqhubeki ku-backend ye-architecture ye-ARM, lapho ukukhiqizwa kwekhodi efanele bekungaqinisekisiwe. Kwengezwe ikhono lokukhiqiza ikhodi ukuze iziqondiso zisebenze ngezinombolo eziyinkimbinkimbi futhi zengezwe ukwesekwa kwezakhiwo yamasethi eziyalezo (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT kuya ku-X86 backend.

Ngaphandle kwalokho, izidingo zokwakha i-LLVM zinyusiwe, Futhi ukwakhiwa kufanele manje kuhambisane nezinga le-C++17, okungukuthi ukwakha kudinga okungenani i-GCC 7.1, Clang 5.0, Apple Clang 10.0 noma i-Visual Studio 2019 16.7.

Ngakolunye uhlangothi, ibuye igqamise i-backends ethuthukisiwe ye-MIPS, i-PowerPC ne-RISC-V yezakhiwo, kanye nokusekelwa kokulungisa iphutha le-64-bit esebenzisekayo yezakhiwo ze-LoongArch kusilungisi sephutha se-LLDB kanye nokuphathwa okuthuthukisiwe kwezimpawu zokususa iphutha ze-COFF.

Kwezinye izinguquko okugqamile:

  • Kulabhulali ye-Libc++, umsebenzi oyinhloko ubugxile ekusebenziseni ukusekelwa kwezici ezintsha zamazinga e-C++20 kanye ne-C++23.
  • Isikhathi sokuxhuma sincishiswe kakhulu kusixhumi se-LDD ngokufanisa ukuskena kokuthuthwa kwekheli nemisebenzi yokuqalisa isigaba. Kwengezwe ukusekelwa kokucindezelwa kwesigaba kusetshenziswa i-algorithm ye-ZSTD.
  • Imisebenzi ethuthukisiwe eyenziwe ngezinga le-C++20 nayo iyagqanyiswa.
  • bamba izixhumanisi ezakhiwe emisebenzini ye-lambda.
  • I-opharetha yokulingana ngaphakathi kwezinkulumo.
  • Ikhono lokungacacisi igama elingukhiye legama kwezinye izimo,
  • Ukuvunyelwa kokuqaliswa kwengezwe phakathi kwabakaki ("Aggr(val1, val2)").
  • Imisebenzi esetshenzisiwe echazwe ezingeni elizayo le-C++2b.
  • Usekelo luhlinzekwe ngohlobo lwe-char8_t,
  • Kunwetshwe ububanzi bezinhlamvu ezivunyelwe ukusetshenziswa kokuthi "\N{...}",
  • Kwengezwe amandla okusebenzisa okuguquguqukayo okumenyezelwe njengokuthi "static constexpr" emisebenzini emenyezelwe njenge-constexpr.
  • Imisebenzi esetshenzisiwe echazwe ezingeni elizayo le-C2x C:
  • Ukwesekwa okwengeziwe kokulayisha amafayela amaningi okumisa (amafayela okumisa azenzakalelayo alayishwa kuqala, bese lawo acaciswe ngefulegi elithi “–config=", manje elingacaciswa izikhathi eziningi).
  • I-oda elishintshiwe lokulayisha lamafayela okusetha azenzakalelayo: u-clang uzama ukulayisha ifayela kuqala - .cfg futhi uma ingayitholi, izama ukulayisha amafayela amabili .cfg kanye .cfg.
  • Kwengezwe ifulegi elisha lokwakha elithi "-fcoro-aligned-allocation" lokusabalalisa okuhambisana nohlaka olujwayelekile.
  • Kwengezwe ifulegi elithi "-fmodule-output" ukuze unike amandla imodeli yokwakha yesigaba esisodwa samamojula ajwayelekile e-C++.
  • Imodi engeziwe "-Rpass-analysis=stack-frame-layout" ukuze uhlole izinkinga ngesakhiwo sozimele wesitaki.
  • Kwengezwe isibaluli esisha __attribute__((target_version("cpu_features"))) futhi kwanwetshwa ukusebenza kwe-__attribute__((target_clones("cpu_features1″,"cpu_features2",…)))) ukuze ukhethe izinguqulo ezithile zezici ezinikezwe64 CPUA .
  • Amathuluzi okuxilonga athuthukisiwe:
  • Isexwayiso esingeziwe "-Wsingle-bit-bitfield-constant-conversion" ukuze ubambe ukunqanyulwa okucacile lapho unikeza eyodwa endaweni eyodwa esayiniwe.
  • Ukuxilongwa okunwetshiwe kokuhlukahluka kwe-constexpr okungaqaliswanga.
  • Kwengezwe izexwayiso ze-"-Wcast-function-type-strict" kanye "nezixwayiso-ze-Wincompatible-function-pointer-types-strict" ukuze kubanjwe izinkinga ezingaba khona lapho kusakaza izinhlobo zokusebenza.

Okokugcina Uma unesifiso sokwazi okwengeziwe ngakho, ungabheka imininingwane kufayela le- isixhumanisi esilandelayo.


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Unomthwalo wemfanelo ngedatha: AB Internet Networks 2008 SL
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.