diff --git a/verfahren.pdf b/verfahren.pdf index fb14dae..b8e6173 100644 Binary files a/verfahren.pdf and b/verfahren.pdf differ diff --git a/verfahren.tex b/verfahren.tex index 1aef84d..2c4e809 100644 --- a/verfahren.tex +++ b/verfahren.tex @@ -316,6 +316,51 @@ \item Falls $t$ in unbesuchten Blöcken nicht geändert wurde, $\mathrm{wn}_Z(t) = \phi'(\mathrm{wn}_X(t),\mathrm{wn}_Y(t))$ löschen und alle Verwendungen von $\mathrm{wn}_Z(t)$ durch $\mathrm{wn}_X(t)$ ersetzen \end{itemize} \end{itemize} +\newpage +\subsubsection{Wertnummerierungsverfahren nach Click/Braun (aus Übung)} +\begin{algorithmic} + \Function{Visit}{Basisblock $b$} + \State Wertnummerierung mit ReadVar/WriteVar durchführen + \ForAll{KFG-Nachfolger $s$ von $b$} + \If{$b$ ist letzter Vorgänger (höchste Tiefensuchnummer) von $s$} + \State \Call{Seal}{$s$} + \EndIf + \If{$s$ noch nicht besucht} + \State \Call{Visit}{$s$} + \EndIf + \EndFor + \EndFunction + \Statex + \Function{Seal}{Basisblock $b$} + \ForAll{vorläufige $\phi$-Funktion für Variable $v$ in $b$} + \ForAll{KFG-Vorgänger $p$ von $b$} + \State \Call{ReadVar}{$v$, $p$} als Operand zu $\phi$-Funktion hinzufügen + \EndFor + \EndFor + \EndFunction + \Statex + \Function{WriteVar}{Variable $v$, Basisblock $b$} + \State \Return nächste frische Wertnummer für $v$ + \EndFunction + \Statex + \Function{ReadVar}{Variable $v$, Basisblock $b$} + \If{$b$ enthält bereits Wertnummer für $v$} + \State \Return Wertnummer für $v$ in $b$ + \EndIf + \If{$b$ ist noch nicht versiegelt} + \State vorläufige $\phi$-Funktion mit nächster Wertnummer für $v$ in $b$ einfügen + \State \Return Wertnummer der $\phi$-Funktion + \ElsIf{$b$ hat nur einen Vorgänger $p$} + \State \Return \Call{ReadVar}{$v$, $p$} + \Else + \State $phi$-Funktion mit nächster Wertnummer für $v$ in $b$ in einfügen + \ForAll{KFG-Vorgänger $p$ von $b$} + \State \Call{ReadVar}{$v$, $p$} als Operand zu $\phi$-Funktion hinzufügen + \EndFor + \State \Return Wertnummer der $\phi$-Funktion + \EndIf + \EndFunction +\end{algorithmic} \subsection{Optimierungen auf SSA-Form} \begin{itemize}