let iter_edges_slices f proj =
let do_edge dest (ff_caller, call) =
f ((Slice ff_caller, dest), Some call) in
let do_f _f_var fi =
List.iter (do_edge (Src fi)) fi.T.f_called_by;
let do_ff ff = List.iter (do_edge (Slice ff)) ff.T.ff_called_by
in List.iter do_ff (M.fi_slices fi)
in
Cilutil.VarinfoHashtbl.iter do_f proj.T.functions