1:IN[EXIT]=∅
2:for each basic block B∈V(CFG)−{EXIT} do
3:IN[B]=∅
4:end for
5:repeat
6:for each basic block B∈V(CFG)−{EXIT} do
7:OUT[B]=S∈suc(B)⋃IN[S]
8:IN[B]=useB∪(OUT[B]−defB)
9:end for
10:until no changes to any IN[B] of basic block B∈V(CFG)−{EXIT} occur