Az LLVM 12.0 már megjelent, és ezek a hírek

LLVM

Hat hónap fejlesztés után bemutatták az LLVM 12.0 projekt új verziójának elindítását 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 fejlesztéseket és híreket találhatunk, amelyek közül kiemelhetünk egy új "tune-cpu" attribútumot, amely támogatja a -mtune-t mint gcc, valamint a különböző platformok fejlesztéseit.

Az LLVM 12.0 fő újdonságai

Ebben az új verzióban ezt megtalálhatjuk az llvm-build build eszközkészlet támogatása pythonban írva megszűnt, amely helyett a projekt teljesen átállt a CMake build rendszer használatára.

Az AArch64 architektúra háttérrendszere tovább javította a Windows platform támogatását: a cél Windows rendszerekhez az összeállító kimenet helyes generálása biztosított, optimalizálták az adatgenerálást a kibontott hívásokon (az ilyen adatok mérete 60% -kal csökkent), a seh irányelvek segítségével az adatok létrehozásának képessége feloldásra került.

míg A PowerPC architektúra háttérbe építése új optimalizációkat tartalmaz a belső és a hurok telepítésekhez, a Power10 processzorok támogatásának fejlesztése, a tömbök manipulálásához szükséges MMA utasítások további támogatása és az AIX operációs rendszer jobb támogatása.

hogy Az x86 támogatást adott az AMD Zen 3, az Intel Alder Lake és az Intel Sapphire Rapids processzorokhoz, valamint a HRESET, UINTR és AVXVNNI processzorok utasításait. Megszűnt az MPX kiterjesztések (memória védelmi kiterjesztések) támogatása, hogy ellenőrizhessük a mutatók memóriaterület-korlátjait (ezt a technológiát nem használták széles körben, és már eltávolították a GCC-ből és a clang-ból). Az assembler támogatást adott a {disp32} és a {disp8} előtagokhoz, valamint a .d32 és .d8 utótagokhoz, hogy szabályozza az operandusok és átmenetek eltolásának méretét. Egy új "tune-cpu" attribútumot adtak hozzá a mikroarchitekturális optimalizálások engedélyezésének vezérléséhez.

Egy másik kiemelkedő változás az új mód került hozzáadásra: "-fsanitize = unsigned-shift-base" az előjel nélküli egész számok túlcsordulását észlelni egy balra tolás után. A Mach-O (macOS) formátum esetében a támogatás támogatja az arm64, arm és i386 architektúrákat, a link szakasz optimalizálást (LTO) és a verem kikapcsolását a kivételek kezelésekor.

is egy új funkció "tune-cpu" attribútum van kiemelve amely lehetővé teszi az oA mikroarchitektúra optimalizálásokat a "target-cpu" attribútumtól függetlenül alkalmazzák vagy a TargetMachine CPU, amelyet az utasításkészlet kiválasztásához használunk. Ha az attribútum nincs megadva, akkor a hangoló CPU követni fogja a cél CPU-t.

A Libc ++ a C ++ 20 szabvány új funkcióit valósítja meg és elkezdte fejleszteni a C ++ 2b specifikáció jellemzőit, plusz hozzáadott támogatás az összeszereléshez, letiltja a lokalizáció támogatását ("-DLIBCXX_ENABLE_LOCALIZATION = OFF") és eszközök ál-véletlenszerű számok előállítására.

míg a Clang 12 fejlesztései közül az AArch64 architektúrához új fordítói zászlók kerültek "-Moutline-atomics" és "-mno-outline-atomics" az atomsegítő funkciók, például az "__aarch64_cas8_relax" engedélyezéséhez és letiltásához. Ezek a futásidejű függvények meghatározzák, hogy van-e támogatás a nagy rendszerbővítményekhez (LSE), és a mellékelt atomprocesszor-utasításokkal vagy visszagörgetéssel használják az LL / SC (Load-link / store-conditional) utasításokat a szinkronizáláshoz.

Az „ezt” mutatót nem null és leereszthető ellenőrzésekkel dolgozzuk fel (N). A "-fdelete-null-pointer-check" opcióval eltávolítható a non-null attribútum, ha null értékekre van szükség.

Linuxban az AArch64 és PowerPC architektúrákhoz a "-fasynchronous -wind-tables" engedélyezi a névleges hívások táblázatait, mint a GCC-ben.

A "#pragma clang loop vectorize_width" részben hozzáadódott a "fix" (alapértelmezett) és "skálázható" opciók megadásának lehetősége a vektorizálási módszer kiválasztásához.

A Linux-ban található clangd gyorsítótár-kiszolgálóban (Clang Server) a hosszú távú működés során jelentősen csökken a memóriafogyasztás (időszakos hívás érkezik a malloc_trim oldalra az ingyenes memóriaoldalak operációs rendszerhez történő visszaadásához).

Végül ha érdekel, hogy többet tudjon meg róla erről az új verzióról megteheti Kérjük, olvassa el a részleteket a következőkben. link.


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.