Az LLVM-fejlesztők azt tervezik, hogy alapértelmezés szerint bekapcsolják a ClangIR-buildet

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

kami911 képe

A ClangIR már évek óta fejlesztés alatt áll, mint a Clang fordító új köztes reprezentációja. A ClangIR az MLIR-re épül, és magasabb szintű, mint az LLVM IR. Mivel a ClangIR több C/C++ forráskódszemantikát tud megőrizni, használata jobb diagnosztikát, kód-/statikus elemzést és több teljesítmény-optimalizálást tesz lehetővé ahhoz képest, mintha mindent közvetlenül az AST-ből süllyesztenének le LLVM IR-re. Bár az alapértelmezett használatát még nem tervezik, az LLVM érintett fejlesztői most legalább arról egyeztetnek, hogy az alapértelmezett build része legyen.

Elindult egy LLVM Discourse téma, ahol azt vitatják meg, milyen előnyei és hátrányai lennének annak, ha a ClangIR buildet alapértelmezés szerint bekapcsolnák. Emellett készült egy RFC pull request is, amely a Clang fordításakor az LLVM forrásfában alapértelmezés szerint engedélyezné a ClangIR buildelését. A ClangIR már upstreamen is elérhető, de eddig szándékosan kimaradt az alapértelmezett buildkonfigurációból.

Ha ClangIR-t is buildelnek, az MLIR is alapértelmezett függőséggé válik a Clang számára. Hátrány, hogy a ClangIR+MLIR alapértelmezett bekapcsolása jelentősen megnöveli a Clang fordítási idejét. Egyes becslések szerint a buildidő több mint a duplájára nőhet. A ClangIR-nek jelenleg nincs „Microsoft” targetje Windows célzásához, a folyamatos integrációs (CI) tesztelés is hosszabb lesz a ClangIR-tesztek miatt, és más hasonló aggályok is felmerültek.

A mostani javaslat továbbra is csak arról szól, hogy a ClangIR-t alapértelmezés szerint buildeljék a Clanggal, de ne használják alapértelmezettként, vagyis ne változzon a kódgenerálás alapértelmezett viselkedése. Azokon a buildkonfigurációkon, ahol ez lehetséges, a ClangIR használatához továbbra is a -fclangir fordítókapcsolót kell megadni. A nagyobb optimalizációs lehetőségek, a statikus elemzés és a diagnosztika előnyei mellett az MLIR-alapú ClangIR új lehetőségeket nyit a jövőben a GPU-/eszköz-offload terén is, például a kód hatékonyabb SPIR-V/Vulkan irányú süllyesztésével és más, MLIR-alapú többeszközös előnyökkel. Hamarosan kiderül, hová vezet ez a vita az alapértelmezett buildbe való bekerülésről.