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 (pdg_debug "fix point reached for sid:%d" stmt.sid; None)