Naujoji „LLVM 9.0“ versija jau išleista ir tai yra jos naujiena

LLVM

Po šešių mėnesių plėtros buvo pristatyta nauja projekto LLVM 9.0 versija, kuris yra GCC suderinamas įrankių rinkinys (kompiliatoriai, optimizatoriai ir kodų generatoriai), kuris kaupia programas į tarpinį RISC tipo virtualių nurodymų bitų kodą (žemo lygio virtuali mašina su kelių lygių optimizavimo sistema).

Jis sukurtas optimizuoti kompiliavimo laiką, įrišimo laikas, vykdymo laikas bet kuria programavimo kalba, kurią vartotojas nori apibrėžti. Iš pradžių įgyvendinta sudarant C ir C ++, LLVM kalbos agnostinis dizainas ir projekto sėkmė pagimdė pačias įvairiausias kalbas, įskaitant „Objective-C“, „Fortran“, „Ada“, „Haskell“, „Java“ bytecode, „Python“, „Ruby“, „ActionScript“, GLSL, „Clang“, „Rust“, „Gambas“ ir kt.

Sugeneruotą pseudokodą galima konvertuoti naudojant JIT kompiliatorių į mašinų instrukcijas tiesiai programos vykdymo metu.

Pagrindinės naujos „LLVM 9.0“ funkcijos

Tarp naujų „LLVM 9.0“ funkcijų rasti palaikymą norint pašalinti eksperimentinę kūrimo žymą iš RISC-V platformos, C ++ palaikymas „OpenCL“.

Dar viena naujovė išsiskiria galimybė padalinti programą į dinamiškai apkrautas dalis LLD ir „asm goto“ konstrukcijos, naudojamos „Linux“ branduolio kode, įgyvendinimas.

Be to, taip pat pabrėžiama, kad „Libc ++“ buvo palaikoma WASI („WebAssembly System Interface“) ir LLD pristatė pradinį „WebAssembly“ dinaminio susiejimo palaikymą. Pridėtas GCC išraiškos »asm goto» įgyvendinimas, leidžiantis pereiti nuo surinkto tiesioginio bloko prie žymos C kodu.

Ši funkcija reikalinga norint sukurti „Linux“ branduolį »CONFIG_JUMP_LABEL = y« režime naudojant „Clang“ x86_64 sistemose. Atsižvelgiant į ankstesnėse versijose pridėtus pakeitimus, „Linux“ branduolį dabar galima sukurti „Clang“ x86_64 architektūrai (anksčiau jis buvo palaikomas tik „arm“, „aarch64“, „ppc32“, „ppc64le“ ir „mips“ architektūrose.

Pridėta PTI instrukcijų palaikymas (Branch Target Indicator) ir PAC (Pointer Authentication Code) AArch64 architektūrai. Gerokai patobulinta MIPS, RISC-V ir PowerPC platformų parama.

Be to, „Android“ ir „ChromeOS“ projektai jau perėjo prie „Clang“ naudojimo branduolio sukūrimui o „Google“ išbando „Clang“ kaip pagrindinį „Linux“ sistemų kūrimo platformos branduolį.

Ateityje, branduolio kompiliavimo proceso metu bus galima naudoti kitus komponentus LLVM, įskaitant LLD, llvm-objcopy, llvm-ar, llvm-nm ir llvm-objdump.

Prie LLD susiejimo buvo pridėta eksperimentinė skaidinio funkcija, leidžianti programą suskirstyti į kelias dalis, kurių kiekviena dedama į atskirą ELF failą. Ši funkcija leidžia paleisti pagrindinę programos dalį, kuri, jei reikia, įkelia likusius proceso komponentus (pavyzdžiui, galite pasirinkti integruotą PDF peržiūros priemonę kaip atskirą failą, kuris bus atsisiųstas tik tada, kai vartotojas atidaro failą PDF).

Kita vertus, išsiskiria ir daugybė patobulinimų. skirtas X86, AArch64, ARM, SystemZ, MIPS, AMDGPU ir PowerPC architektūroms.

Pvz., „AArch2“ architektūrai buvo pridėta SVE64 ir MTE („Memory Tagging Extensions“) instrukcijų palaikymas, „Armv8.1-M“ ir MVE architektūros palaikymas - prie ARM vidinės pusės.

AMDGPU atveju buvo pridėta parama GFX10 architektūrai („Navi“), numatytasis parametras yra įjungtas, norint iškviesti funkciją ir perduoti suaktyvintą kombinuotą DPP („Data Primitives-Parallel“).

LLDB derintojas pristatė spalvų pėdsakų paryškinimą atgal; pridėtas DWARF4 debug_types ir DWARF5 debug_info blokų palaikymas;

Programos „llvm-objcopy“ ir „llvm-strip“ papildė COFF formato vykdomųjų failų ir objektų palaikymą.

RISC-V architektūros pagrindas yra stabilizuotas, kuri nebe laikoma eksperimentine ir kuriama pagal numatytuosius nustatymus. Visiškas palaikymas kodų generavimui RV32I ir RV64I instrukcijų rinkinių variantams su MAFDC plėtiniais.

Fuente: http://releases.llvm.org/


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.