LLVM 16.0 kwaye yakhululwa kwaye ezi ziindaba zayo

Ilogo yeLLVM

I-LLVM sisikhokelo sokuphuhlisa abaqulunqi kunye nokunceda ukwakha iilwimi ezintsha zeprogram kunye nokuphucula iilwimi ezikhoyo.

Emva nje kweenyanga ezintandathu zophuhliso, ukumiliselwa kwe Inguqulelo entsha yeprojekthi I-LLVM 16.0, inguqulelo apho inani elikhulu lotshintsho kunye nophuculo luphunyezwa.

Kwabo bangayazi i-LLVM, kuya kufuneka uyazi ukuba oku yi-GCC compiler compiler (abahlanganisi, abalungiseleli, kunye nabavelisi bekhowudi) abaqulunqa iinkqubo zibe yi-RISC-efana nomyalelo we-virtual bitcode ephakathi (umatshini wenyani okwinqanaba elisezantsi onenkqubo yokwandisa amanqanaba amaninzi).

I-pseudocode eyenziweyo inokuguqulwa ngumqambi we-JIT kwimiyalelo yomatshini kanye ngexesha lokwenziwa kweprogram.

Iimpawu ezintsha zeLLVM 16.0

Kolu guqulelo lutsha lunikezelweyo, sinokufumana uphuculo oluninzi olubalulekileyo kwi clang 16.0, apho umgangatho we-C ++/ObjC++ ongagqibekanga umi ngaphandle, leyo imiselwe ku-gnu++17 (eyayisakuba ngu-gnu++14), leyo kuthetha inkxaso kwiifitsha ze-C++17 ezinezandiso ze-GNU ngokungagqibekanga. Ukusetyenziswa kwezinto ezichazwe kumgangatho we-C ++ 17 kuvunyelwe kwikhowudi ye-LLVM.

Olunye utshintsho olugqamayo kukuba yongezwe inkxaso yeCortex-A715, Cortex-X3 kunye neNeoverse CPUs I-V2, i-Armv8.3 izandiso kunye neempawu ezininzi kwiinguqulelo ze-AArch64 ngasemva.
La ukuhambelana kweqonga I-Armv2, i-Armv2A, i-Armv3 kunye ne-Armv3M ziye zayekwa kwi-backend yolwakhiwo lwe-ARM, apho ukuveliswa kwekhowudi echanekileyo akuzange kuqinisekiswe. Kongezwe ukukwazi ukuvelisa ikhowudi yemiyalelo yokusebenza ngamanani anzima kwaye yongezwa inkxaso yoyilo lwezakhiwo yeesethi zemiyalelo (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT ukuya kwi-X86 backend.

Ngaphandle koko, iimfuno zokwakha iLLVM zonyusiwe, Kwakhona ukwakhiwa kufuneka ngoku kuhambelane nomgangatho we-C ++ 17, oko kukuthi ukwakha kufuna ubuncinane i-GCC 7.1, i-Clang 5.0, i-Apple Clang 10.0 okanye i-Visual Studio 2019 16.7.

Kwelinye icala, ikwaqaqambisa i-backends ephuculweyo ye-MIPS, i-PowerPC kunye ne-RISC-V ye-architectures, kunye nenkxaso yokulungiswa kwe-64-bit ephunyeziweyo kwi-architecture ye-LoongArch kwi-LLDB debugger kunye nokuphathwa okuphuculweyo kweesimboli ze-COFF.

Olunye utshintsho ezibalaseleyo:

  • Kwilayibrari yeLibc ++, umsebenzi oyintloko wawugxininise ekuphumezeni inkxaso kwiimpawu ezintsha zeC ++ 20 kunye neC ++ 23 imigangatho.
  • Ixesha lokudibanisa liye lancitshiswa kakhulu kwikhonkco ye-LDD ngokufanisa ukuskena kwedilesi yokufuduka kunye nemisebenzi yokuqalisa icandelo. Inkxaso eyongeziweyo yoxinzelelo lwecandelo usebenzisa i-algorithm ye-ZSTD.
  • Imisebenzi ephezulu ephunyezwe ngomgangatho we-C ++ 20 nayo ibonakaliswe.
  • bamba amakhonkco acwangcisiweyo kwimisebenzi ye-lambda.
  • Umsebenzisi wokulingana phakathi kweenkcazo.
  • Ukukwazi ukukhankanya igama elingundoqo legama elingundoqo kwezinye iimeko,
  • Ukuvunyelwa kokuqaliswa kongezwe phakathi kwezibiyeli ("Aggr(val1, val2)").
  • Iphunyeziwe imisebenzi echazwe kwinqanaba elizayo le-C++2b.
  • Inkxaso enikezelwe ngohlobo lwe-char8_t,
  • Yandisa uluhlu lwamagama avumelekileyo ukuba asetyenziswe kwi "\N{...}",
  • Kongezwe amandla okusebenzisa izinto eziguquguqukayo ezibhengezwe njenge "static constexpr" kwimisebenzi ebhengezwe njenge-constexpr.
  • Iphunyeziwe imisebenzi echazwe kumgangatho weC2x C wexesha elizayo:
  • Inkxaso eyongeziweyo yokulayisha iifayile ezininzi zoqwalaselo (iifayile zoqwalaselo oluhlala lukhona zilayishwa kuqala, emva koko ezo zicaciswe nge "-config="" iflegi, enokuthi ngoku ichazwe izihlandlo ezininzi).
  • Ulungelelwaniso lomthwalo olutshintshiweyo lweefayile zoqwalaselo ezingagqibekanga: i-clang izama ukulayisha ifayile kuqala - .cfg kwaye ukuba ayikwazi ukuyifumana, izama ukulayisha iifayile ezimbini .cfg kunye .cfg.
  • Kongezwe iflegi entsha yokwakha "-fcoro-aligned-allocation" yosasazo lwesiqhelo olulungelelanisiweyo.
  • Kongezwe iflegi "-fmodule-output" ukwenza imodeli yolwakhiwo lwenqanaba elinye leemodyuli eziqhelekileyo ze-C++.
  • Imo eyongeziweyo "-Rpass-analysis=stack-frame-layout" ukuxilonga imiba ngoyilo lwesakhelo sesitaki.
  • Kongezwe uphawu olutsha __attribute__((target_version("cpu_features"))) kwaye kwandiswe ukusebenza kwe __attribute__((target_clones("cpu_features1″,"cpu_features2",...)))))))))) .
  • Izixhobo zokuxilonga ezomeleziweyo:
  • Isilumkiso esongeziweyo "-Wsingle-bit-bitfield-constant-conversion" ukubamba ukunqunyulwa okufihlakeleyo xa unika enye indawo encinci esayiniweyo.
  • Uxilongo olwandisiweyo lwe-constexpr variables engasetyenziswanga.
  • Kongezwe "-Wcast-function-type-strict" kunye ne "-Wincompatible-function-pointer-types-strict" izilumkiso zokubamba imiba enokubakho xa uphosa iindidi zomsebenzi.

Gqibela Ukuba unomdla wokwazi okungakumbi ngayo, ungajonga iinkcukacha kwi ukulandela ikhonkco.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Inoxanduva lwedatha: I-AB Internet Networks 2008 SL
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.