Nová verze LLVM 9.0 již byla vydána a toto jsou její novinky

LLVM

Po šesti měsících vývoje bylo představeno spuštění nové verze projektu LLVM 9.0, což je sada nástrojů kompatibilní s GCC (kompilátory, optimalizátory a generátory kódu), který kompiluje programy do přechodného bitového kódu virtuálních pokynů podobných RISC (nízkoúrovňový virtuální stroj s víceúrovňovým optimalizačním systémem).

Je navržen tak, aby optimalizoval čas kompilace, čas vazby, čas provedení v libovolném programovacím jazyce, který chce uživatel definovat. Původně implementováno pro kompilaci C a C ++, Agnostický design jazyka LLVM a úspěch projektu vytvořily širokou škálu jazyků, včetně Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas a dalších.

Vygenerovaný pseudokód lze převést pomocí kompilátoru JIT na strojové pokyny přímo v době provádění programu.

Hlavní nové funkce LLVM 9.0

Mezi nové funkce LLVM 9.0 najít podporu pro odebrání značky experimentálního vývoje z platformy RISC-V, Podpora C ++ pro OpenCL.

Další novinka vyniká schopnost rozdělit program na dynamicky načítané části v LLD a implementace konstruktu »asm goto» použitého v kódu jádra Linuxu.

Kromě toho je také zdůrazněno, že Libc ++ dorazil s podporou WASI (WebAssembly System Interface) a LLD zavedli počáteční podporu pro dynamickou vazbu WebAssembly. Přidána implementace výrazu specifického pro GCC »asm goto», který umožňuje přepnout ze sestaveného vloženého bloku na značku v kódu C.

Tato funkce je nezbytná pro sestavení jádra Linuxu v režimu »CONFIG_JUMP_LABEL = y« pomocí Clang na systémech x86_64. Vzhledem k změnám přidaným v předchozích verzích lze nyní jádro Linuxu postavit v Clangu pro architekturu x86_64 (dříve to bylo podporováno pouze pro architektury arm, aarch64, ppc32, ppc64le a mips.

Byla přidána podpora pro pokyny BTI (Branch Target Indicator) a PAC (Pointer Authentication Code) pro architekturu AArch64. Výrazně vylepšená podpora pro platformy MIPS, RISC-V a PowerPC.

Navíc, Projekty Android a ChromeOS již při vytváření jádra přešly na používání Clangu a Google testuje Clang jako primární jádra pro sestavení platformy pro své běžící systémy Linux.

V budoucnosti, během procesu kompilace jádra bude možné použít další komponenty LLVM, včetně LLD, llvm-objcopy, llvm-ar, llvm-nm a llvm-objdump.

Do linkeru LLD byla přidána experimentální funkce oddílu, která umožňuje program rozdělit na více částí, z nichž každá je umístěna v samostatném souboru ELF. Tato funkce umožňuje spustit hlavní část programu, která podle potřeby načte zbývající součásti procesu (například můžete vybrat vestavěný prohlížeč PDF jako samostatný soubor, který se stáhne, pouze když uživatel otevře soubor PDF).

Na druhou stranu vyniká také řada vylepšení v backendech. pro architektury X86, AArch64, ARM, SystemZ, MIPS, AMDGPU a PowerPC.

Například pro architekturu AArch2 byla přidána podpora instrukcí SVE64 a MTE (Memory Tagging Extensions), do back-endu ARM byla přidána podpora pro architekturu Armv8.1-M a architekturu MVE.

V případě AMDGPU byla přidána podpora pro architekturu GFX10 (Navi), výchozí je povoleno vyvolat funkci a předat aktivovaný kombinovaný DPP (Data Primitives-Parallel).

LLDB debugger představil barevné zvýraznění stop zpět; přidána podpora pro DWARF4 debug_types a DWARF5 debug_info bloky;

Obslužné programy llvm-objcopy a llvm-strip přidaly podporu pro spustitelné soubory a objekty ve formátu COFF.

Backend pro architekturu RISC-V je stabilizovaný, který již není umístěn jako experimentální a je vytvořen ve výchozím nastavení. Plná podpora pro generování kódu pro varianty instrukční sady RV32I a RV64I s příponami MAFDC.

zdroj: http://releases.llvm.org/


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.