\begin{algorithm} \caption{Build-CFG} \begin{algorithmic} \INPUT a set $B$ of $k$ basic blocks. \OUTPUT all edges in CFG derived from $B$. \FORALL{basic block $b$ \textbf{in} $B$ } \IF{$b.last.type =$ JUMP} \STATE $targetStmt = b.last.target$ \COMMENT{ 跳转语句的目标语句 } \STATE Let $targetBlock$ be the basic block containing $targetStmt$. \STATE \textbf{output} $b\to targetBlock$ \ENDIF \IF{$b.last.type \ne$ UCONDITIONAL-JUMP } \STATE $nextStmt = b.last.next$ \STATE Let $nextBlock$ be the basic block containing $nextStmt$. \STATE \textbf{output} $b\to nextBlock$ \ENDIF \ENDFOR \end{algorithmic} \end{algorithm}