let select_pdg_elements proj pdg to_select =
  let kf = PdgTypes.Pdg.get_kf pdg in
    try KfTopVisi.find proj kf;
        debug 1 "function '%a' selected for top: skip selection"
          Kernel_function.pretty kf
    with Not_found ->
      debug 1 "add selection in function '%a'@." Kernel_function.pretty kf;
      ProjBoolMarks.mark_and_propagate (proj_marks proj) pdg to_select;
      List.iter (KfTopVisi.set proj) !called_top;
      called_top := []