Compiler Pipeline Visualization
Albert Havliček · Cvut DSpace (Czech Technical University) · 2026
Ladění optimalizačních překladačů je podstatně náročnější než ladění běžných aplikací. Standardní pracovní postup v LLVM je roztříštěný: vývojáři musí ručně spouštět jednotlivé průchody, analyzovat obsáhlé textové výpisy a složitě propojovat nesouvislé vizualizace grafů toku řízení. Žádný z existujících nástrojů neprezentuje proces překladu jako jednotnou, prohledávatelnou sekvenci a současné jazykové servery pro LLVM IR jsou buď neudržované, nebo příliš omezené pro praktické použití. Tato práce představuje IRviz, vlastní LSP (Language Server Protocol) server a rozšíření pro Visual Studio Code, které tento proces sjednocuje. Hlavním technickým přínosem je integrace obousměrného sledování zdrojových lokací do parseru LLVM IR pomocí nově vyvinuté třídy `AsmParserContext`. To umožňuje efektivní využití funkcí přejít na definici a najít reference. IRviz dále nabízí interaktivní vizualizace grafů toku řízení s teplotním mapováním podle frekvence provádění, strukturovaný systém správy artefaktů pro výstupy jednotlivých průchodů a schopnost spouštět libovolné optimalizační průchody v samostatném procesu `opt`. Tím je zajištěna stabilita jazykového serveru i v případě, že daný průchod havaruje. IRviz je plně funkčně srovnatelný se svým interním předchůdcem ze společnosti Azul Systems. Změny týkající se sledování zdrojových lokací byly úspěšně začleněny do hlavního (upstream) repozitáře LLVM. Samotný jazykový server aktuálně prochází revizí pro zařazení do monorepozitáře projektu LLVM.