Optimierungspass
Optimierungspass (englisch: optimization pass) bezeichnet in der Compilertechnik eine Transformation, die auf einer Zwischenrepräsentation (IR) des Programms angewendet wird, um Laufzeitleistung, Speicherverbrauch oder Codegröße zu verbessern, ohne die semantische Funktionalität zu verändern. Optimierungspässe sind typischer Bestandteil einer mehrstufigen Pipeline und folgen in der Regel auf Analysephasen, die Informationen über Abhängigkeiten, Speicherverhalten oder Kontrollfluss liefern.
Ein Optimierungspass arbeitet auf einer bestimmten Granularität, etwa pro Funktion, pro Schleife oder über das gesamte
Zu gängigen Techniken gehören Constant Folding (Konstanten-Auswertung), Konstantenpropagierung, Dead-Code-Elimination (Totcode-Elimination), Dead-Store-Elimination, Eliminierung redundanter Lade- oder Speicherzugriffe,
Die Implementierung variiert zwischen Frameworks. Beliebte Compiler wie LLVM verwenden einen Pass-Manager, der Optimierungspässe in Stufen
Siehe auch: Compiler-Optimierung, Zwischenrepräsentation, SSA.