For all basic blocks B strict-in[B] = empty set strict-out[B] = empty set end for Loop For all basic blocks B strict-in[B] = use[B] union (strict-out[B] - def[B]) strict-out[B] = intersection(S a successor of B) strict-in[B] end for until there are no changes in one iteration