Nova verzija LLVM 9.0 već je objavljena i to su njezine vijesti

LLVM

Nakon šest mjeseci razvoja predstavljeno predstavljanje nove verzije projekta LLVM 9.0, koji je GCC kompatibilan alat (kompajleri, optimizatori i generatori koda), koji kompajlira programe u srednji bitni kod virtualnih uputa nalik RISC-u (virtualni stroj na niskoj razini sa sustavom za optimizaciju na više razina).

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

Generirani pseudokod može se pretvoriti pomoću JIT kompajlera u strojne upute izravno u vrijeme izvršavanja programa.

Glavne nove značajke LLVM-a 9.0

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

Još jedna novost koja ističe 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.

Uz to, također je istaknuto da je Libc ++ došao s podrškom za WASI (WebAssembly System Interface) i LLD uveo je početnu podršku za dinamičko povezivanje WebAssembly. Dodana je implementacija GCC specifičnog izraza »asm goto«, koji vam omogućuje prelazak s okupljenog ugrađenog bloka na oznaku u C kodu.

Ova je značajka neophodna za izgradnju Linux jezgre u načinu »CONFIG_JUMP_LABEL = y« koristeći Clang na x86_64 sustavima. 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.

Osim toga, Android i ChromeOS projekti već su prešli na korištenje Clang-a za izgradnju jezgre a Google testira Clang kao primarne jezgre platforme za izgradnju za svoje Linux sustave.

U budućnosti, tijekom procesa kompilacije 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ćuje 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 upute SVE2 i MTE (Memory Tagging Extensions) za arhitekturu AArch64, podrška za arhitekturu Armv8.1-M i MVE dodana je u pozadinu ARM-a.

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).

Ispravljač LLDB uveo je naglašavanje tragova u boji unatrag; 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 prema zadanim postavkama je izgrađen. Puna podrška za generiranje koda za inačice skupa uputa RV32I i RV64I s MAFDC proširenjima.

izvor: http://releases.llvm.org/


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.