Phi-Funktion (Compilerbau)Die Phi-Funktion (φ-Funktion) ist ein Konstrukt im Compilerbau. Bei der internen Darstellung von Programmcode in der Static-Single-Assignment-Darstellung wird jede Variable nur einmal geschrieben. Da so in alternativen Zweigen verschiedene Variablen geschrieben werden, muss nach der Vereinigung des Kontrollflusses (z. B. nach einem if/then/else) das Problem gelöst werden, dass späterer Code nur auf eine Variable zugreifen kann. Gelöst wird das Problem über die Phi-Funktion, die ihre Parameter abhängig vom tatsächlich genommenen Kontrollfluss als Ergebnis zurückgibt. Sie ist keine deterministische Funktion, da ihr Ergebnis von nicht parametrisierten Nebeneffekten abhängt. Aus dem Ausdruck BeispielDer Code-Block if (c)
a = b + d;
else
a = e + f;
x = 2 * a;
wird in der SSA-Form mit Hilfe der Phi-Funktion zu: if (c_1)
a_1 = b_1 + d_1;
else
a_2 = e_1 + f_1;
x_1 = 2 * phi(a_1, a_2);
Literatur
|
Portal di Ensiklopedia Dunia