Intermediate Representation (IR)
Die IR ist das Rückgrat des Compilers. Sie dient als universelle Zwischendarstellung zwischen dem AST und den verschiedenen Code-Generatoren.
Universelle Zwischendarstellung
Nachdem der Code alle Validierungs-Passes (AutoFix bis Borrow Checker) durchlaufen hat, wird er in die IR überführt. Diese Darstellung nutzt SSA (Single Static Assignment), um komplexe Optimierungen zu ermöglichen.
SSA-Format
Jede Variable wird genau einmal zugewiesen. Dies vereinfacht Datenfluss-Analysen und ermöglicht präzise Optimierungen wie Constant Folding.
Target Agnostic
Die IR ist unabhängig von der Zielsprache. Dies ermöglicht den Multi-Target-Support für 8 verschiedene Backends ohne Redundanz.
IR Pipeline & Komponenten
IR Builder
Konvertiert den AST vollständig zu IR inklusive SSA-Format und Control Flow Graph (CFG).
IR Optimizer
Führt Dead Code Elimination, Constant Folding und Function Inlining auf der IR durch.
IR Validator
Prüft die IR auf strukturelle Korrektheit, SSA-Konformität und Typ-Konsistenz vor dem Codegen.