\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}