Wertnummerierungsverfahren aus Übung hinzugefügt
This commit is contained in:
parent
32597233c6
commit
90c056842b
BIN
verfahren.pdf
BIN
verfahren.pdf
Binary file not shown.
@ -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
|
\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}
|
||||||
\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}
|
\subsection{Optimierungen auf SSA-Form}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
Loading…
Reference in New Issue
Block a user