LLVM 9.0 uus versioon on juba välja antud ja need on selle uudised

LLVM

Pärast kuut kuud arengut esitleti projekti LLVM 9.0 uue versiooni käivitamist, mis on GCC-ga ühilduv tööriistakomplekt (kompilaatorid, optimeerijad ja koodigeneraatorid), mis kompileerib programmid RISC-laadsete virtuaalsete käskude vahepealseks bitikoodiks (madala taseme virtuaalne masin, millel on mitmetasandiline optimeerimissüsteem).

See on loodud kompileerimisaja optimeerimiseks, sidumisaeg, täitmisaeg mis tahes programmeerimiskeeles, mida kasutaja soovib määratleda. Algselt rakendati C ja C ++ kompileerimiseks, LLVMi keele agnostiline kujundus ja projekti edu on sünnitanud väga erinevaid keeli, sealhulgas Objective-C, Fortran, Ada, Haskell, Java baitkood, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas jt.

Loodud pseudokoodi saab JIT-kompilaatori abil teisendada masina juhisteks otse programmi täitmise ajal.

LLVM 9.0 peamised uued funktsioonid

LLVM 9.0 uute funktsioonide hulgas leidis tuge eksperimentaalse arendusmärgendi eemaldamiseks RISC-V platvormilt, C ++ tugi OpenCL-ile.

Veel üks uudsus, mis silma paistab võime jagada programm dünaamiliselt koormatud osadeks LLD-s ja Linuxi tuumakoodis kasutatud konstruktsiooni »asm goto» rakendamine.

Lisaks tuuakse välja ka see, et Libc ++ saabus WASI toel (WebAssembly System Interface) ja LLD tutvustasid WebAssembly dünaamilise sidumise esialgset tuge. Lisati GCC-spetsiifilise avaldise »asm goto» rakendamine, mis võimaldab teil vahetada kokkupandud tekstiplokilt C-märgendile.

See funktsioon on vajalik Linuxi tuuma loomiseks režiimis »CONFIG_JUMP_LABEL = y«, kasutades Clangi x86_64 süsteemides. Arvestades eelmistes versioonides lisatud muudatusi, saab Linuxi tuuma nüüd Clangis ehitada x86_64 arhitektuuri jaoks (varem toetati seda ainult arm, aarch64, ppc32, ppc64le ja mips arhitektuuride puhul.

Lisatud on STI juhiste tugi (Haru sihtmärgi indikaator) ja PAC (Pointer Authentication Code) AArch64 arhitektuuri jaoks. Oluliselt paranenud tugi MIPS-, RISC-V- ja PowerPC-platvormidele.

Lisaks Androidi ja ChromeOSi projektid on juba kerneli loomiseks üle läinud Clangi kasutamisele ja Google testib Clangi kui oma Linuxi töötavate süsteemide esmast ehituskeskkonna tuuma.

Tulevikus tuuma kompileerimise käigus on võimalik kasutada muid komponente LLVM, sealhulgas LLD, llvm-objcopy, llvm-ar, llvm-nm ja llvm-objdump.

LLD linkerile on lisatud eksperimentaalne sektsioonifunktsioon, mis võimaldab programmi jagada mitmeks osaks, millest igaüks paigutatakse eraldi ELF-faili. See funktsioon võimaldab teil käivitada programmi põhiosa, mis vastavalt vajadusele laadib protsessi ülejäänud komponendid (näiteks saate sisseehitatud PDF-i vaataja valida eraldi failina, mis laaditakse alla ainult siis, kui kasutaja avab faili PDF).

Teisalt paistavad silma ka taustaprogrammide arvukad täiustused. X86, AArch64, ARM, SystemZ, MIPS, AMDGPU ja PowerPC arhitektuuride jaoks.

Näiteks on AArch2 arhitektuurile lisatud SVE64 ja MTE (Memory Tagging Extensions) juhiste tugi, ARM-i taustaprogrammile on lisatud Armv8.1-M arhitektuuri ja MVE arhitektuuri tugi.

AMDGPU puhul lisati tugi GFX10 arhitektuurile (Navi), vaikimisi on lubatud funktsiooni kutsumine ja aktiveeritud kombineeritud DPP (Data Primitives-Parallel) edastamine.

LLDB silur tutvustas jälgede värvilise esiletõstmise tagurpidi; lisatud tugi DWARF4 debug_types ja DWARF5 debug_info plokkidele;

Llvm-objcopy ja llvm-strip utiliidid on lisanud tuge COFF-vormingus käivitatavatele failidele ja objektidele.

RISC-V arhitektuuri taustaprogramm on stabiliseeritud, mis ei ole enam eksperimentaalne ja on vaikimisi ehitatud. MAFDC laiendustega RV32I ja RV64I käsukomplekti variantide koodide loomise täielik tugi.

allikas: http://releases.llvm.org/


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.