Nová verzia LLVM 9.0 už bola vydaná a toto sú jej novinky

Llvm

Po šiestich mesiacoch vývoja bolo predstavené uvedenie novej verzie projektu LLVM 9.0, čo je sada nástrojov kompatibilných s GCC (kompilátory, optimalizátory a generátory kódu), ktorý kompiluje programy do prechodného bitového kódu virtuálnych inštrukcií podobných RISC (nízkoúrovňový virtuálny stroj s viacúrovňovým optimalizačným systémom).

Je navrhnutý tak, aby optimalizoval čas kompilácie, čas väzby, čas vykonania v ľubovoľnom programovacom jazyku, ktorý chce používateľ definovať. Pôvodne implementované na kompiláciu C a C ++, Agnostický dizajn jazyka LLVM a úspešnosť projektu plodili širokú škálu jazykov, vrátane Objective-C, Fortran, Ada, Haskell, Java bytecode, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas a ďalších.

Vygenerovaný pseudokód je možné previesť pomocou kompilátora JIT na strojové pokyny priamo v čase vykonania programu.

Hlavné nové funkcie LLVM 9.0

Medzi nové funkcie LLVM 9.0 nájsť podporu na odstránenie značky experimentálneho vývoja z platformy RISC-V, Podpora C ++ pre OpenCL.

Ďalšia novinka, ktorá vyniká schopnosť rozdeliť program na dynamicky načítané časti v LLD a implementácia konštruktu »asm goto» použitého v kóde jadra Linuxu.

Okrem toho sa tiež zdôrazňuje, že Libc ++ prišiel s podporou WASI (WebAssembly System Interface) a LLD zaviedli počiatočnú podporu pre dynamické viazanie WebAssembly. Pridaná implementácia špecifického výrazu GCC »asm goto», ktorý umožňuje prechod zo zostaveného vloženého bloku na značku v kóde C.

Táto vlastnosť je nevyhnutná na zostavenie jadra Linuxu v režime »CONFIG_JUMP_LABEL = y« pomocou Clang na systémoch x86_64. Ak vezmeme do úvahy zmeny pridané v predchádzajúcich verziách, jadro Linuxu je možné teraz vytvoriť v Clangu pre architektúru x86_64 (predtým bolo podporované iba pre architektúry arm, aarch64, ppc32, ppc64le a mips.

Bola pridaná podpora pre pokyny ZINZ (Branch Target Indicator) a PAC (Pointer Authentication Code) pre architektúru AArch64. Výrazne vylepšená podpora pre platformy MIPS, RISC-V a PowerPC.

Okrem toho, Projekty Android a ChromeOS už prešli na používanie Clangu na zostavenie jadra a Google testuje Clang ako primárne jadrá na zostavenie platformy pre svoje spustené systémy Linux.

V budúcnosti počas procesu kompilácie jadra bude možné použiť ďalšie komponenty LLVM vrátane LLD, llvm-objcopy, llvm-ar, llvm-nm a llvm-objdump.

Do linkera LLD bola pridaná experimentálna funkcia oddielu, ktorá umožňuje program rozdeliť na viac častí, z ktorých každá je umiestnená v samostatnom súbore ELF. Táto funkcia umožňuje spustiť hlavnú časť programu, ktorá podľa potreby načíta zostávajúce komponenty procesu (napríklad môžete zvoliť vstavaný prehliadač PDF ako samostatný súbor, ktorý sa stiahne iba v prípade, že používateľ otvorí súbor PDF).

Na druhej strane vynikajú aj početné vylepšenia v koncových zariadeniach. pre architektúry X86, AArch64, ARM, SystemZ, MIPS, AMDGPU a PowerPC.

Napríklad pre architektúru AArch2 bola pridaná podpora pokynov SVE64 a MTE (Memory Tagging Extensions), do back-endu ARM bola pridaná podpora pre architektúru Armv8.1-M a architektúru MVE.

V prípade AMDGPU bola pridaná podpora pre architektúru GFX10 (Navi), predvolene je povolené vyvolať funkciu a odovzdať aktivovaný kombinovaný DPP (Data Primitives-Parallel).

Ladiaci program LLDB zaviedol farebné zvýraznenie stôp dozadu; pridaná podpora pre DWARF4 debug_types a DWARF5 debug_info bloky;

Obslužné programy llvm-objcopy a llvm-strip pridali podporu pre spustiteľné súbory a objekty formátu COFF.

Backend pre architektúru RISC-V je stabilizovaný, ktorý už nie je umiestnený ako experimentálny a je zostavený predvolene. Plná podpora pre generovanie kódu pre varianty inštrukčnej sady RV32I a RV64I s rozšíreniami MAFDC.

Fuente: http://releases.llvm.org/


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.