let combinePredecessors stmt ~old (new_:t) =
    let new_state = computeFirstPredecessor stmt new_ in
    let is_new, new_state = BuildPdg.test_and_merge_states old new_state in
    if is_new then Some new_state
    else
      begin
        (if !debug
         then P.debug "fix point reached for stmt %d" stmt.sid);
        None
      end