LLVM 16.0 waa la sii daayay waana warkeeda

LLVM Logo

LLVM waa qaab-dhismeed loogu talagalay horumarinta kombuyuutarrada iyo sidoo kale caawinta dhisidda luqadaha barnaamijka cusub iyo horumarinta luqadaha jira.

Ka dib markii in ka badan lix bilood oo horumar ah, daahfurka nooca cusub ee mashruuca LLVM 16.0, nooca kaas oo tiro badan oo isbedel iyo hagaajin ah la hirgeliyay.

Kuwa aan aqoon u lahayn LLVM, waa inaad taas ogaataa waa isku xidhe ku habboon GCC (compilers, optimizers, and code-generators) kuwaas oo ku ururiya barnaamijyada RISC-ka mid ah tilmaanta farsamada ee dhexdhexaadka ah ee bitcode (mashiinka farsamada gacanta oo hooseeya oo leh nidaam kor u qaadis heerar badan leh).

Pseudocode-ka la soo saaray waxaa u rogi kara isku-duwaha JIT oo u rogi kara tilmaamaha mashiinka wakhtiga fulinta barnaamijka.

Astaamaha ugu muhiimsan ee cusub ee LLVM 16.0

Noocan cusub ee la soo bandhigay, waxaan ka heli karnaa dhowr horumar oo muhiim ah 16.0, kuwaas oo heerka caadiga ah ee C ++/ObjC++ uu taagan yahay, kaas oo waxa loo dejiyay gnu++17 (oo hore gnu ++14), kaas oo waxay tusinaysaa taageerada sifooyinka C++17 oo leh kordhinta GNU si caadi ah. Isticmaalka walxaha lagu qeexay heerka C++17 waa la ogolyahay koodka LLVM.

Isbeddelka kale ee muuqda ayaa ah in lagu daray Taageerada Cortex-A715, Cortex-X3 iyo CPUs Neoverse V2, Armv8.3 kordhinta iyo qaababka kala duwan ee AArch64 dhabarka
La waafaqsanaanta madal Armv2, Armv2A, Armv3 iyo Armv3M waa la joojiyay. ee gadaasha dhismaha ARM, kaas oo jiilka code saxda ah aan la dammaanad qaadin. Waxaa lagu daray awoodda soo saarista koodka tilmaamaha si loogu shaqeeyo tirooyin adag oo lagu daray taageerada naqshadaha sets edbinta (ISA) AMX-FP16, CMPXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT ilaa X86 dhabarka dambe.

Taas ka sokow, Shuruudaha dhismaha LLVM waa la kordhiyey, Sidoo kale dhismuhu hadda waa inuu la jaanqaadaa heerka C++17, tusaale ahaan dhismuhu wuxuu u baahan yahay ugu yaraan GCC 7.1, Clang 5.0, Apple Clang 10.0 ama Visual Studio 2019 16.7.

Dhanka kale, waxay sidoo kale iftiiminaysaa dib u hagaajinta MIPS, PowerPC iyo RISC-V, iyo sidoo kale taageerada lagu saxayo 64-bit executables ee naqshadaha LoongArch ee LLDB debugger iyo hagaajinta wax ka qabashada calaamadaha COFF.

Isbeddelada kale taagan:

  • Laybareeriga Libc++, shaqada ugu weyn waxay diiradda saaratay hirgelinta taageerada sifooyin cusub oo heerarka C++20 iyo C++23.
  • Waqtiga isku xirka ayaa si weyn hoos loogu dhigay xiriiriyaha LDD iyadoo la barbar dhigayo iskaanka dib u dejinta cinwaanka iyo hawlgallada bilowga ah ee qaybta. Taageero lagu daray isku-buufinta qaybta iyadoo la adeegsanayo algorithm-ka ZSTD.
  • Hawlaha horumarsan ee lagu fuliyay heerka C++20 ayaa sidoo kale la iftiimiyay.
  • Qabo isku xidhka habaysan ee hawlaha lambda.
  • Hawlwadeenka sinnaanta ee tibaaxaha.
  • Kartida in aan lagu qeexin nooca ereyga muhiimka ah ee xaaladaha qaarkood,
  • Oggolaanshaha bilawga lagu daray inta u dhaxaysa jaantusyada ("Aggr(val1, val2)").
  • Hawlaha la fuliyay ee lagu qeexay heerka C++2b mustaqbalka.
  • Taageerada waxaa lagu bixiyaa nooca char8_t,
  • Kordhinta tirada xarfaha loo oggol yahay isticmaalka "\N{...",
  • Waxaa lagu daray awoodda isticmaalka doorsoomayaasha lagu dhawaaqay inay yihiin "static constexpr" ee hawlaha lagu sheegay constexpr.
  • Hawlaha la fuliyay ee lagu qeexay heerka mustaqbalka ee C2x C:
  • Taageero dheeri ah oo loogu talagalay soo dejinta faylal badan oo qaabeyn ah (faylalka qaabeynta caadiga ah ayaa marka hore la raray, ka dibna kuwa lagu qeexay calanka "–config=", oo hadda la cayimi karo dhowr jeer).
  • Beddelay habka culeyska ee faylasha qaabeynta caadiga ah: clang wuxuu isku dayaa inuu marka hore soo shubo faylka - .cfg oo haddii ay heli waydo, waxay isku daydaa inay ku shubto laba fayl .cfg iyo .cfg.
  • Lagu daray calan dhisme cusub "-fcoro-aligned-allocation" oo loogu talagalay qaybinta qaab-dhismeedka caadiga ah.
  • Lagu daray calanka "-fmodule-output" si uu awood ugu yeesho qaabka dhismaha hal-waji ee cutubyada caadiga ah ee C++.
  • Qaabka lagu daray "-Rpass-analysis=stack-frame-layout" si loo ogaado arrimaha qaabeynta qaab-dhismeedka
  • Lagu daray __ sifo __ ((bartilmaameedka_version("cpu_features"))) sifada oo la kordhiyey shaqeynta __sifada__((target_clones("cpu_features1″,"cpu_features2",...))) si loo xusho noocyada gaarka ah ee sifooyinka ay bixiso CPU AA64 .
  • Aaladaha ogaanshaha ee la xoojiyey:
  • Digniin lagu daray "-Wsingle-bit-bit-field-constant-constant-constant" si loo qabto googooyn aan toos ahayn marka lagu meeleynayo mid ka mid ah garoon-biteedka hal-bit oo saxeexan.
  • Baadhitaano la fidiyay oo loogu talagalay doorsoomayaasha constexpr ee aan la bilaabin.
  • Lagu daray "-Wcast-function-type-sight" iyo "-Wincomompatible-function-pointer-types-sight" digniinaha si loo qabto arrimaha suurtagalka ah marka la tuurayo noocyada shaqada.

Finalmente Haddii aad xiisaynayso inaad waxbadan ka ogaato, waxaad ka eegi kartaa faahfaahinta xiriirka soo socda.


Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Ka mas'uul ah xogta: AB Internet Networks 2008 SL
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.