Az LLVM 13.0 támogatási fejlesztésekkel és egyebekkel érkezik

LLVM

Hat hónap fejlesztés után az „LLVM 13.0” projekt új verziójának bevezetését most mutatták be GCC (Compilers, Optimizers, and Code Generators) kompatibilis, amely a programokat a RISC-hez hasonló virtuális utasítások köztes bitkódjává fordítja (alacsony szintű virtuális gép többszintű optimalizáló rendszerrel).

Ebben az új verzióban különféle változtatásokat és újdonságokat adtak hozzá, amelyek közül támogatási fejlesztések kiemelve valamint többek között a C ++ 20 és a C ++ 2b új funkcióinak megvalósítását.

Az LLVM 13.0 fő újdonságai

Ebben az új verzióban megtalálhatjuk, hogy sés hozzáadta a "-ehcontguard" opciót a CET technológia használatához (Windows Control-flow Enforcement Technology), hogy megvédje a Return-Oriented Programming (ROP) technikákkal épített kihasználások kivételkezelési szakaszában.

Emellett ésA debuginfo-teszt projektet átnevezték keresztprojekt-tesztekre és arra tervezték, hogy több projektből származó összetevőket teszteljen, nem korlátozódva a hibakeresési információkra, és a buildrendszer támogatást nyújt több disztribúció létrehozásához, például az egyik segédprogramokkal, a másik pedig a fejlesztői könyvtárakkal.

Másrészt A Libc ++ folytatja a C ++ 20 és C ++ 2b szabványok új funkcióinak bevezetését, beleértve a „fogalmak” könyvtárának befejezését, plusz hozzáadott támogatás a std: fájlrendszerhez Windows rendszerre MinGW alapján, külön fejlécfájlokat is , és és a LIBCXX_ENABLE_INCOMPLETE_FEATURES felépítési opciót hozzáadtuk a nem teljesen megvalósított fejlécfájlok letiltásához.

míg Az AArch64 architektúra háttere támogatja az Armv9-A RME kiterjesztéseket (Realm Management Extension) és SME (Scalable Matrix Extension) az assemblerben, ISA V68 / HVX támogatás hozzáadva a Hexagon architektúrához és az x86 háttérhez jobb kompatibilitás az AMD Zen 3 processzorokkal és támogatta a GFX1013 RDNA2 APU -kat az AMDGPU háttérrendszerben.

A Big-endian Aarch64 processzorok támogatását megvalósító LLD linker képességei is kibővültek, és a Mach-O háttérrendszer olyan állapotba került, amely lehetővé teszi a közönséges programok összekapcsolását. Tartalmazza a Glibc LLD használatával történő összekapcsolásához szükséges fejlesztéseket.

Az llvm-mca (Machine Code Analyzer) segédprogram támogatja a rendezett szuperskaláris csőprocesszorokat, például az ARM Cortex-A55-öt.

Az AArch64 platform LLDB hibakeresője teljes mértékben támogatja a mutató hitelesítést, MTE (MemTag, Memory Tagging Extension) és SVE regiszterek, valamint olyan parancsok kerültek hozzáadásra, amelyek lehetővé teszik a címkék minden memóriakiosztási művelethez való kötését, és a memória elérésekor megszervezik a címkéhez társítani kívánt mutatót.
Az LLDB hibakereső és a Fortran - Flang interfész hozzáadásra került a projekt által létrehozott bináris összeállításokhoz.

Mivel a A Clang 13.0 kiemeli a fejlesztéseket:

  • A garantált sorhívások támogatása (egy alprogram -hívás a függvény végén, amely sor -rekurziót képez, ha az alprogram önmagát hívja) megvalósult.
  • Hozzáadta a "-Wunused-but-set-parameter" és a "-Wunused-but-set-variable" jelzőket, hogy figyelmeztetés jelenjen meg, ha egy paraméter vagy változó be van állítva, de nincs használatban.
  • Hozzáadta a "-Wnull-pointer-kivonás" zászlót, hogy figyelmeztetés jelenjen meg, ha a kód meghatározatlan viselkedéshez vezethet a nullmutató kivonási műveletekben való használata miatt.
  • Hozzáadta a "-fstack-use" jelzőt, hogy minden kódfájlhoz generáljon egy további ".su" fájlt, amely információkat tartalmaz a veremkeretek méretéről a feldolgozott fájlban meghatározott egyes funkciókhoz.
  • A statikus elemző új típusú kimenetet kapott, a "sarif-html" -t, amelynek eredményeként a jelentések egyidejűleg generálódnak HTML és Sarif formátumban.
  • Új csekket adott hozzá az allocClassWithName fájlhoz. Ha a "-analyzer-display-progress" opció meg van adva, akkor az egyes funkciók elemzési ideje megjelenik. Az intelligens mutatóelemző (alpha.cplusplus.SmartPtr) majdnem készen áll.
  • Támogatást nyújtottak az OpenMP 5.1 specifikációban meghatározott hurokátalakítási irányelvekhez ("#pragma omp unrol" és "#pragma omp tile").
  • Az új csekkek nagy részét hozzáadták a linter clang-tidy-hez.

Végül Ha érdekel, hogy többet tudjon meg róla, ellenőrizheti a részleteket A következő linken.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: AB Internet Networks 2008 SL
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.