LLVM 17.0 je već objavljen i ovo su njegove vijesti

Logotip LLVM

LLVM je okvir za razvoj kompajlera, kao i pomoć u izgradnji novih programskih jezika i poboljšanju postojećih jezika.

Nakon šest mjeseci razvoja Predstavljena je nova verzija LLVM 17.0, u kojem su različita poboljšanja, promjene, ispravci grešaka i, iznad svega, različiti važni aspekti implementirani u Clang 17.0.

Za one koji nisu upoznati s LLVM-om, trebali biste znati da ovo je GCC kompatibilan prevodilac (kompilatori, optimizatori i generatori koda) koji kompajlira programe u srednji bit kod virtualnih instrukcija nalik RISC-u (virtualni stroj niske razine s višerazinskim optimizacijskim sustavom).

Generirani pseudokod JIT kompajler može pretvoriti u strojne instrukcije upravo u trenutku izvođenja programa.

Glavne nove značajke LLVM-a 17.0

U ovoj novoj verziji LLVM 17.0 koja je predstavljena, postoje različiti relevantni aspekti koje treba uzeti u obzir, od kojih su, na primjer, poboljšanja X86 pozadine, dobro je dodaoo podrška za proširenja arhitektura skupa instrukcija ISA SHA512, ISA SM3, ISA SM4 i ISA AVX-VNNI-INT16.

Osim toga, također ističe poboljšanja u pozadinske mogućnosti za arhitekturu RISC-V koje su se znatno proširile, jer dodana podrška za sifive-x280 procesor.

Još jedna od promjena koje možemo pronaći je Implementirana podrška za ekstenzije XTH procesora*, kao i kompatibilnost s ekstenzijama LSX, LASX, LVZ i LBT ISA na pozadinu LoongArch arhitekture.

Poboljšana pozadina za AArch64, ARM, WebAssembly, MIPS, PowerPC, AMDGPU arhitekture, proširene mogućnosti LLD povezivača i dodana nova naredba "register info" u LLDB debugger za prikaz svih poznatih informacija o zapisu.

Što se tiče poboljšanja u Clang 17.0, ističe se da su implementirane značajke definirane u budućem C-standardu C2x kao što su ključne riječi bool, static_assert, aligns, alignof i thread_local, kao i mogućnost specificiranja praznih uglatih zagrada «{ } » za inicijalizaciju na nulte vrijednosti.

Kodo C pruža mogućnost prosljeđivanja "goto" izraza unutar "asm" blokova kroz neizravno odabrane oznake, dodana je podrška za C ekstenziju koja omogućuje korištenje tipa umjesto izraza kao prvog operanda u "_Generic", uz dopuštanje konstantnih izraza u C jeziku za korištenje struktura, unija i nizovi deklarirani atributom "const".

Što se tiče poboljšanja vezanih uz standard C++20, spominje se da sada Na svim platformama osim Windowsa, postoji puna podrška za Coroutines, Osim toga, implementirani su dodatni zahtjevi za operacije usporedbe konstantnih izraza.

Također se ističe da sadaIspravno analiziranje lambda predložaka je zajamčeno naveden odmah nakon parametara predloška i sadrži varijablu ovisnog tipa u bloku. Rezervirano korištenje dvostrukih podvlaka u korisničkim literalima i obeshrabreno korištenje ključne riječi "operator" u definicijama funkcija s rezerviranim identifikatorima u nazivu

Kao poboljšanja koja se trebaju napraviti u vezi sa standardom C++23 , spominje se da je u završnoj fazi odobravanja od strane ISO-a, jer promijenjen opseg konačnog povratnog tipa u lambda funkcijama da prvo pogledate kukice, a zatim okolni tekst.

Od ostale promjene koji se ističu:

  • Dodana je mogućnost definiranja višedimenzionalnih nizova pomoću
  • Prilikom kompajliranja C++ aplikacija korištenjem načina optimizacije "-O0", generiranje koda za pozive je poboljšano.
  • Dodana je podrška za varijablu okoline NO_COLOR za onemogućavanje izlazne boje.
  • Statička analiza i dijagnostički alati značajno su prošireni, na primjer, dodane su nove provjere prekoračenja cijelog broja s predznakom, korekcija lambda predloška, ​​constexpr izrazi, usporedbe nultog pokazivača, upotreba neinicijaliziranih struktura itd.
  • Biblioteka Libc++ nastavlja implementirati podršku za mogućnosti standarda C++20 i C++23, a također je započeo rad na pružanju podrške za specifikaciju C++26.
  • Dodana podrška za izraz "zahtijeva cplusplus23" u opisima veza između datoteka zaglavlja i modula.

Konačno, ako ste zainteresirani da možete saznati više o tome, možete pogledati detalje u sljedeći link.


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.