\begin{algorithm} \caption{Live-Variables-Analysis} \begin{algorithmic} \INPUT CFG ($def_B$ and $use_B$ computed for each basic block $B$) \OUTPUT $IN[B]$ and $OUT[B]$ for each basic block $B$ \STATE $IN[EXIT] = \empty$ \FOR{\textbf{each} basic block $B\in V(CFG) - \{EXIT\}$} \STATE $IN[B] = \empty$ \ENDFOR \REPEAT \FOR{\textbf{each} basic block $B\in V(CFG) - \{EXIT\}$} \STATE $OUT[B] = \bigcup\limits_{S \in suc(B)} IN[S]$ \STATE $IN[B] = use_B \cup (OUT[B] - def_B)$ \ENDFOR \UNTIL{no changes to any $IN[B]$ of basic block $B\in V(CFG) - \{EXIT\}$ occur} \end{algorithmic} \end{algorithm}