Konstantenpropagation
Konstantenpropagation bezeichnet eine Optimierung in Compilern, bei der bekannte Konstantenwerte in Variablen erkannt und an deren Stellen genutzt werden. Ziel ist es, durch Ersetzen von Variablen durch Werte aus Konstantenberechnungen weitere Optimierungen wie Constant Folding oder Dead-Code-Elimination zu ermöglichen.
Technisch handelt es sich um eine datengesteuerte Analyse (data-flow analysis). Für jeden Punkt im Programm wird
Nach der Analyse werden Konstanten in den Code eingefügt und einfache Ausdrücke vorgerendert. Dadurch ergeben sich
Vorteile umfassen mögliche Laufzeit- und Codegrößenreduktionen sowie bessere Voraussetzungen für weitere Optimierungen. Grenzen ergeben sich bei
Beispiel: a = 5; b = a + 2; c = b * 3. Nach Konstantenpropagation erhält man b = 7 und