Nova verzija LLVM 9.0 je već objavljena i ovo su njene vijesti

LLVM

Nakon šest meseci razvoja predstavljeno predstavljanje nove verzije LLVM 9.0 projekta, koji je GCC kompatibilan alat (kompajleri, optimizatori i generatori koda), koji kompajlira programe u međubitni kôd virtualnih uputa nalik RISC-u (virtualna mašina na niskom nivou sa sistemom za optimizaciju na više nivoa).

Dizajniran je za optimizaciju vremena kompilacije, vrijeme vezivanja, vrijeme izvršavanja u bilo kojem programskom jeziku koji korisnik želi definirati. Izvorno implementirano za kompajliranje C i C ++, Jezički agnostički dizajn LLVM-a i uspjeh projekta iznjedrili su širok spektar jezika, uključujući Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas i druge.

Generirani pseudo-kod može se pretvoriti pomoću JIT kompajlera u mašinske upute izravno u vrijeme izvođenja programa.

Glavne nove karakteristike LLVM 9.0

Među novim značajkama LLVM 9.0 pronaći podršku za uklanjanje oznake eksperimentalnog razvoja s RISC-V platforme, Podrška za C ++ za OpenCL.

Još jedna novost koja izdvaja se sposobnost podjele programa na dinamički učitane dijelove u LLD-u i implementacija konstrukcije »asm goto» koja se koristi u kodu Linux jezgre.

Pored toga, također je istaknuto da je Libc ++ stigao s podrškom za WASI (WebAssembly System Interface) i LLD uveli su početnu podršku za dinamičko povezivanje WebAssembly. Dodana je implementacija izraza specifičnog za GCC »asm goto«, koji vam omogućava da se prebacite sa sklopljenog ugrađenog bloka na C oznaku.

Ova je značajka potrebna za izgradnju Linux kernela u načinu »CONFIG_JUMP_LABEL = y« koristeći Clang na x86_64 sistemima. Uzimajući u obzir promjene dodane u prethodnim verzijama, Linux kernel se sada može graditi u Clangu za arhitekturu x86_64 (ranije je bio podržan samo za arm, aarch64, ppc32, ppc64le i mips arhitekture.

Dodana je podrška za BTI upute (Branch Target Indicator) i PAC (Pointer Authentication Code) za AArch64 arhitekturu. Značajno poboljšana podrška za MIPS, RISC-V i PowerPC platforme.

Takođe, Android i ChromeOS projekti već su prešli na upotrebu Clang-a za izgradnju jezgre i Google testira Clang kao primarne jezgre platforme za izgradnju za svoje Linux sisteme.

U budućnosti, tijekom procesa kompajliranja jezgre bit će moguće koristiti druge komponente LLVM, uključujući LLD, llvm-objcopy, llvm-ar, llvm-nm i llvm-objdump.

Eksperimentalna funkcija particije dodana je u LLD povezivač, što omogućava da se program podijeli na više dijelova, od kojih je svaki smješten u zasebnu ELF datoteku. Ova značajka omogućuje vam pokretanje glavnog dijela programa koji će po potrebi učitati preostale komponente u procesu (na primjer, ugrađeni preglednik PDF možete odabrati kao zasebnu datoteku koja će se preuzeti samo kada korisnik otvara datoteku PDF).

S druge strane, ističu se i brojna poboljšanja u pozadini za arhitekture X86, AArch64, ARM, SystemZ, MIPS, AMDGPU i PowerPC.

Na primjer, dodana je podrška za SVE2 i MTE (Memory Tagging Extensions) upute za arhitekturu AArch64, podrška za Armv8.1-M i MVE arhitekturu dodane su u ARM pozadinu.

U slučaju AMDGPU, dodana je podrška za GFX10 arhitekturu (Navi), zadano je omogućeno pozivanje funkcije i prosljeđivanje aktiviranog kombiniranog DPP-a (Data Primitive-Parallel).

Program za uklanjanje pogrešaka LLDB uveo je isticanje tragova u boji unazad; dodana podrška za DWARF4 debug_types i DWARF5 debug_info blokove;

Uslužni programi llvm-objcopy i llvm-strip dodali su podršku za izvršne datoteke i objekte u formatu COFF.

Backend za RISC-V arhitekturu je stabiliziran, koji više nije pozicioniran kao eksperimentalni i izgrađen je prema zadanim postavkama. Puna podrška za generiranje koda za varijante skupa uputa RV32I i RV64I s MAFDC ekstenzijama.

Izvor: http://releases.llvm.org/


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.