let compute () =
feedback "beginning analysis";
let p = Ast.get () in
(* fixes bts#587: check that Parameters.MainFunction.get is valid. *)
ignore (Globals.entry_point ());
let cg = computeGraph p in
entry_point_ref :=
Some
(try Hashtbl.find cg (Parameters.MainFunction.get ())
with Not_found -> assert false);
let init_funcs = get_init_funcs cg in
let cg = Service.compute cg init_funcs in
CG.mark_as_computed ();
feedback "analysis done";
cg