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