LLVM 18.1.0 inosvika nekuvandudzwa kwerutsigiro, backend nezvimwe

Nhoroondo ye LLVM

LLVM igadziriro yekugadzira ma compilers pamwe nekubatsira kuvaka mitauro mitsva yekuronga uye kugadzirisa mitauro iripo.

Kutanga kweprojekiti LLVM 18.1.0 inosvika mushure memwedzi mitanhatu yebudiriro uye inoratidzira kuvandudzwa neGCC qIvo vanovhara compilers, optimizers uye kodhi jenareta. Shanduko inocherechedzwa mune iyi shanduro ndizvo chirongwa chitsva chekugadzira nhamba dzeshanduro muchirongwa cheLLVM kutanga kubva kubazi re18.x. Kutevera maitiro ezvirongwa zvakadai seGCC neGDB, kushandiswa kwevhezheni zero ("N.0") kwakagamuchirwa panguva yekuvandudzwa, nepo shanduro yekutanga yakagadzikana yakaverengwa "N.1". Kuchinja uku kunopa zvikomborero nokuparadzanisa zvivako zvakavakirwa pabazi guru kubva pakuvaka pabazi rokupedzisira rokusunungurwa.

Semuenzaniso, mukugadzirira kuburitswa kwazvino (18.1.0), budiriro yakaitwa uchishandisa isina kugadzikana bazi reLLVM 18.0. Yekutanga yakagadzika vhezheni yakabva yaburitswa senhamba 18.1.0, zvichiratidza magumo ekukura kwakakura uye kutenderera kwekuyedza. Mukuwedzera, chirongwa chitsva ichi chinobvumira chizvarwa chekugadzirisa kutaurirana kwevhiki mbiri kana zvichidiwa, pasi penhamba 18.1.1, 18.1.2, nezvimwewo.

Zvakakosha kuziva kuti kana shanduko dzakaitwa kubazi razvino rinobata ABI (Application Binary Interface), iyo inogadziridza icharatidzwa nekuchinja kune yechipiri digit yeshanduro, semuenzaniso, 18.2.0. Izvi zvinogonesa kuenderana uye kwakajeka vhezheni manejimendi, ichipa vashandisi kujeka kwakakodzera pakugadzikana uye kugadziridzwa kunoitwa mukuburitswa kwega kwega.

Makuru matsva maficha eLLVM 18.1.0

Mune iyi vhezheni itsva inoratidzwa yeLLVM 18.1.0, mu X86 architecture, tsigiro yekuvandudzwa kweISA yekuwedzera yakaitwa. Kunyanya, rutsigiro rwakawedzerwa kune USER_MSR, AVX10.1-256 uye AVX10.1-512 edzedzero. Uyezve, Iyo i128 mhando yakabatanidzwa ne __int128 mhando yeGCC uye clang, iyo inofambisa yakakura kuenderana kwemabhinari nemapurojekiti ekunze akadai seRust.

Imwe yakasarudzika muLLVM 18.1.0 yaive ye RISC-V, sekuvandudzwa kwakawanda kwakaitwa uye kuwedzera kwakakosha nekudzikamisa uyel Tsigiro yekuwedzera, pamwe neakavakirwa-mukati mabasa ekuwedzera akawedzerwa uye tsigiro yekuyedza yakaitwa yekugadzira kodhi paRV32E, RV64E, ilp32e uye lp64e zvivakwa.

Pamusana pezvivakwa LoongArch, akavakirwa-mukati mabasa akawedzerwa kune LSX ekuwedzera (128-bit SIMD) uye LASX (256-bit SIMD), rutsigiro rwakawedzerwa kune mirairo mitsva yakaunzwa muLoongArch Reference Manual yakatarwa 1.10, uye yekutanga rutsigiro rweotomatiki vectorization yakaitwa.

MuArch64, Yakawedzera rutsigiro rwema processor akadai seCortex-A520, Cortex-A720 uye Cortex-X4, uye tsigiro yakaitwa yeStack Clash Dziviriro mashandiro, iyo inoona stack mafashama uye inovharira nzira dzekurwisa zvichienderana nekusangana kwestack uye murwi.

Pamusoro peaya magadzirirwo chaiwo ekumashure kweakasiyana ezvivakwa, kuvandudzwa kwakawanda kwakaitwa kune kuseri kwezvivakwa zvakaita seWebAssembly, MIPS, PowerPC, uye AMDGPU. Kugona kweLLD linker kwakawedzerwawo, kutsigirwa kweRISC-V uye AArch64 zvivakwa zvakagadziridzwa, uye zvigadziriso zvakaiswa kuLibc++ raibhurari yekutevera kugona kweC++20, C++23, uye C. mwero. ++26.

Pakupedzisira, Iyo LLDB debugger yakawedzera tsigiro yekuburitsa otomatiki zviratidzo uye data rebhinari kubva kumaseva ekunze iyo inotsigira DEBUGINFOD protocol, nekudaro ichiwedzera iyo debugging kugona pane akasiyana architecture uye kuwedzera rutsigiro rwekuwedzera seSME neSME2 (Scalable Matrix Extension) uye zvakakosha kuziva kuti zvisungo zvemutauro wePython zvakabviswa mune dzimwe nzvimbo, izvo zvinogona. zvinoda kugadziriswa kumaitiro ebudiriro anoenderana neaya malink.

Zvezvikamu zve kuvandudzwa kwakaitwa muClang 18 kusanganisira shanduko dzine chekuita nemutauro weC:

  • Zvimiro, mibatanidzwa, uye arrays ane "const" hunhu zvave kutenderwa kushandiswa seanogara achitaurwa, achitevera fananidzo neGCC.
  • Enums yave kuratidzwa muTBAA (Type-Based Alias ​​​​Analysis) metadata semhando yavo yepakutanga pane kubatwa se "char" mhando.
  • Yakawedzerwa tsigiro ye "counted_by" hunhu, iyo inokutendera kuti utaure munda mune chimiro chine inochinjika array kuona huwandu hwezvinhu muinochinjika array, kuvandudza kushanda kwe buffer mafashama cheki mu clang.
  • Yakaitwa tsigiro ye "inoda c23" kutaura kubatanidza mamodule uye kutsigira C23 chiyero.
  • Chinhu chekuedza chakaitwa kushandisa mamwe marudzi enharo dzisina kunyorwa mumatemplate, zvichibvumira kutsanangurwa kwezvinoyangarara zvibodzwa, zvinongedzo, uye zvinongedzo zvezvimiso.
  • Yakawedzera tsigiro yekuyedza ye "Kubvisa izvi" meshini, iyo inokutendera iwe kushandisa parameter ine "iyi" hunhu mutemplate uye uwane iyo chikamu chechirevo chakadanirwa basa iri.

Chekupedzisira, kana iwe uchifarira kuziva zvakawanda nezvazvo, unogona kutarisa ruzivo Mune inotevera chinongedzo.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira data: AB Internet Networks 2008 SL
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako