LLVM 16.0 uye yakaburitswa uye idzi ndidzo nhau dzayo

Nhoroondo ye LLVM

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

Mushure memwedzi inopfuura mitanhatu yekuvandudzwa, kuvhurwa kwe iyo itsva vhezheni yeprojekti LLVM 16.0, shanduro umo nhamba huru yekuchinja uye kuvandudzwa kunoitwa.

Kune avo vasina kujairana neLLVM, iwe unofanirwa kuziva kuti izvi ndeye GCC inoenderana compiler (macompilers, optimizers, uye macode generator) anounganidza zvirongwa kuita RISC-senge virtual instruction intermediate bitcode (yakaderera-level virtual muchina ine multilevel optimization system).

Iyo pseudocode inogadzirwa inogona kushandurwa neJIT compiler kuita mirairo yemuchina panguva yekuitwa kwechirongwa.

Makuru matsva maficha eLLVM 16.0

Mune iyi vhezheni itsva inoratidzwa, tinogona kuwana akati wandei akakosha ekuvandudza mumutauro 16.0, iyo yakasarudzika C ++/ObjC ++ chiyero chinomira pachena, icho yakaiswa ku gnu++17 (yaimbova gnu++14), iyo zvinoreva tsigiro yeC++17 maficha ane GNU ekuwedzera nekukasira. Iko kushandiswa kwezvinhu zvinotsanangurwa muC ++ 17 chiyero chinotenderwa muLLVM kodhi.

Imwe shanduko inomira pachena ndeyekuti yakawedzerwa rutsigiro rweCortex-A715, Cortex-X3 uye Neoverse CPUs V2, Armv8.3 ekuwedzera uye akawanda-shanduro maficha kune AArch64 backend.
La kugarisana papuratifomu Armv2, Armv2A, Armv3 uye Armv3M zvakamiswa mune yeArM architecture backend, iyo chaiyo kodhi chizvarwa haina kuvimbiswa. Yakawedzera kugona kugadzira kodhi yemirairo yekushanda nenhamba dzakaoma uye yakawedzerwa rutsigiro rwezvivakwa zvemirayiridzo seti (ISA) AMX-FP16, CMPCXADD, AVX-IFMA, AVX-VNNI-INT8, AVX-NE-CONVERT kusvika X86 backend.

Kunze kwaizvozvo, zvinodiwa zvekuvaka LLVM zvawedzerwa, Uyewo chivakwa chacho chinofanira kunge chichienderana neC ++ 17 standard, kureva kuti kuvaka kunoda GCC 7.1, Clang 5.0, Apple Clang 10.0 kana Visual Studio 2019 16.7.

Kune rumwe rutivi, inosimbisawo yakagadziridzwa kumashure kweMIPS, PowerPC uye RISC-V zvivakwa, pamwe nerutsigiro rwekugadzirisa 64-bit executables yeLoongArch architecture kune LLDB debugger uye nekuvandudza mabatirwo eCOFF debugging zviratidzo.

Yeimwe shanduko izvo zvinomira pachena:

  • Muraibhurari yeLibc ++, basa guru rakanga rakanangana nekushandisa rutsigiro rwezvinhu zvitsva zveC++20 uye C++23 zviyero.
  • Nguva yekubatanidza yakaderedzwa zvakanyanya muLDD linker nekufananidza kero yekutamisa scan uye chikamu chekutanga mashandiro. Yakawedzerwa rutsigiro rwekudzvanya kwechikamu uchishandisa iyo ZSTD algorithm.
  • Iwo epamberi mabasa akaiswa neiyo C ++ 20 chiyero anoratidzwa zvakare.
  • tora zvakarongwa zvinongedzo mune lambda mabasa.
  • The equality operator mukati memashoko.
  • Kugona kusataura zita rezita rekiyi mune mamwe mamiriro,
  • Kubvumirwa kwekutanga kwakawedzerwa pakati pemaparentheses ("Aggr(val1, val2)").
  • Akaitwa mabasa anotsanangurwa mune ramangwana C++2b chiyero.
  • Tsigiro yakapihwa nemhando char8_t,
  • Yakawedzera mavara anotenderwa kushandiswa mu"\N{...}",
  • Yakawedzera kugona kushandisa zvinosiyana zvakaziviswa se "static constexpr" mumabasa akaziviswa se constexpr.
  • Akaitwa mabasa anotsanangurwa mune ramangwana C2x C chiyero:
  • Yakawedzerwa tsigiro yekurodha akawanda ekugadzirisa mafaera (mafaera ekumisikidza anotanga kutakurwa, kozoti ayo anotsanangurwa kuburikidza ne "-config=" mureza, uyo zvino unogona kutaurwa kakawanda).
  • Yakashandurwa kurodha kurongeka kwemafaira ekugadzirisa: clang anoedza kurodha faira kutanga - .cfg uye kana isingakwanisi kuiwana, inoedza kuisa mafaira maviri .cfg uye .cfg.
  • Yakawedzera mureza mutsva wekuvaka "-fcoro-aligned-allocation" yekugovera furemu yakarongwa.
  • Yakawedzera "-fmodule-output" mureza kugonesa imwe-chikamu kuvaka modhi yeyakajairwa C++ modules.
  • Yakawedzerwa modhi "-Rpass-analysis=stack-frame-layout" yekuongorora nyaya ne stack furemu marongero.
  • Yakawedzera hutsva __attribute__((target_version("cpu_features"))) uye yakawedzera mashandiro e__attribute__((target_clones("cpu_features1″,"cpu_features2",...)))))))))) .
  • Maturusi ekuongorora akakwenenzverwa:
  • Yakawedzera yambiro "-Wsingle-bit-bitfield-constant-conversion" kuti ubate truncation isina kujeka paunenge uchigovera imwe kune imwe-bit yakasainwa bitfield.
  • Yakawedzerwa diagnostics kune uninitialized constexpr variables.
  • Yakawedzerwa "-Wcast-function-type-strict" uye "-Wincompatible-function-pointer-types-strict" yambiro kuti ubate zvingangoitika pakukanda marudzi ebasa.

Finalmente Kana iwe uchifarira kuziva zvakawanda nezvazvo, unogona kutarisa ruzivo mu 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