LLVM 15.0 inosvika nekuvandudzwa kwemashure akasiyana, rutsigiro rwakakura uye nezvimwe

LLVM 15 inoshandisa kusimudzira tsigiro

LLVM 15.0 inosanganisirawo akati wandei anonakidza ekugadzirisa kuC/C++.

Mushure memwedzi mitanhatu yekuvandudza, LLVM 15.0 kuburitswa kweprojekiti yakaziviswa, iyo shanduko huru dzakawanda dzakaitwa, pamwe nerutsigiro rwakawedzerwa rwema processors matsva, zvivakwa, nezvimwe.

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 15.0

Mune iyi vhezheni itsva inounzwa, inosimbiswa kuti iyo rutsigiro rweCortex-M85 processors, pamwe neArmv9-A, Armv9.1-A uye Armv9.2-A architectures, Armv8.1-M PACBTI-M extensions.

Imwe shanduko inomira pachena ndeyekuti yakawedzera yekuyedza DirectX backend , que inotsigira DXIL fomati (DirectX Intermediate Mutauro) inoshandiswa kune DirectX shaders. Iyo yekumashure inogoneswa kuburikidza ne "-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=DirectX" yekuvaka sarudzo.

libc ++ inoenderera mberi nekushandisa zvinhu zvitsva yeC++20 uye C++2b zviyero, kusanganisira kupedzwa kwe "format" raibhurari yekumisikidza uye yakatsanangurwa yekuyedza vhezheni ye "range" raibhurari.

Kune chikamu cheshanduko dzine chekuita neClang 15.0 inotaurwa izvozvo yakawedzera tsigiro yekuedza yeC-semutauro weHLSL (High-Level Shading Mutauro), iyo inoshandiswa kunyora shaders kutanga neDirectX 9, pamwe nekushandura HLSL shaders muDirectX 12-inoenderana DXIL (DirectX Intermediate Language) binary format, pamwe neSPIR format -V inoshandiswa neVulkan. Mune ramangwana, kuronga kushandisa rutsigiro rweDXBC fomati (DirectX Bytecode) inoshandiswa muDirectX 9-11. Kuitwa kwacho kunopihwa neMicrosoft uye kwakavakirwa paDirectX Shader Compiler, yakaburitswa muna 2017, yakavakirwa pahwaro hweLLVM 3.7.

Zvinonzi zvakare inoenderera mberi ne shanda kutsigira remangwana C2X uye C++23 zviyero. Yakashandiswa pamutauro weC: hunhu hwenoreturn, mazwi enhema uye echokwadi, mhando ye _BitInt(N) yezvikamu zvehudzamu hwakapihwa, iyo *_WIDTH macros, iyo u8 prefix yeUTF-8 mavara.

Pamusoro pazvo, yakaitwa yeC ++: kusanganisa module, ABI kuparadzaniswa kwenhengo dzebasa, yakaraira kusimba kwekutanga kweasiri emunharaunda akasiyana mumodule, multidimensional index operators, otomatiki(x), asiri chaiwo akasiyana, goto uye mavara mumabasa akaziviswa se constexpr, delimited kutevedzana kwekupukunyuka, ane mazita ekupukunyuka kwemavara.

Kune masisitimu anobva pane zvivakwa x86, yakawedzerwa "-fzero-call-used-regs" mureza, iyo inopa zeroing yeese marejista eCPU anoshandiswa mubasa asati adzorera kutonga kubva kubasa. iyi sarudzo inodzivirira kubva kune data leakage yemabasa uye kuderedza huwandu hwezvivharo akakodzera kugadzira ROP (Return Oriented Programming) zvishandiso mukushandisa ne20%.

Memory nzvimbo randomization yakaitwa yezvimiro zveC kodhi, iyo inoomesa kutorwa kwedata kubva kune zvimiro kana paine kushandiswa kwekusagadzikana. Randomization inobatidzwa nekudzimwa nerandomize_layout uye no_randomize_layout attributes, uye inoda kuti mhodzi igadzirwe ne "-frandomize-layout-seed" kana "-frandomize-layout-seed-file" mureza kuti ive nechokwadi chekudzokorora kuvaka.

Yeimwe shanduko izvo zvinomira pachena:

  • Kuwedzera masimba ane chekuita neOpenCL uye OpenMP rutsigiro. Yakawedzerwa rutsigiro rweOpenCL yekuwedzera cl_khr_subgroup_rotate.
  • Yakavandudzwa kumashure kwex86, PowerPC, uye RISC-V zvivakwa.
    Yakavandudzwa LLD linker uye LLDB debugger kugona.
  • Yakawedzerwa "-fstrict-flex-arrays=" mureza » iyo iwe yaunokwanisa kudzora nayo miganho yeyakapfava array element muzvimiro (Soft Array Members, hurongwa hwehukuru husingaverengeki kumagumo kwechimiro).
  • Yakawedzerwa "-warray-parameter" sarudzo yekuyambira pamusoro pemabasa epamusoro ane zvisizvo zviziviso zvenharo zvine chekuita neakamisikidzwa uye akasiyana urefu arrays.
  • Yakavandudzwa kuenderana neMSVC.
  • Yakawedzerwa rutsigiro rwe "#pragma basa uye"#pragma alloc_text" yakapihwa muMSVC.
  • Yakawedzerwa rutsigiro rweMSVC-inoenderana / JMC uye / JMC mireza.
  • Yakawedzera "-m[no-]rdpru" mureza kudzora kushandiswa kweiyo RDPRU rairo, inotsigirwa kubva ku AMD Zen2 processors.
  • Yakawedzera "-mfunction-return=thunk-extern" mureza kudzivirira panjodzi yeRETBLEED, iyo inoshanda nekuwedzera nhevedzano yemirairo isingabatanidzi kutora chikamu chefungidziro yekuuraya yekusvetuka kusina kunanga.

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