let compute () =
feedback "beginning analysis";
let p = Ast.get () in
let cg = computeGraph p in
let main = Kernel.MainFunction.get () in
let main_name =
try
entry_point_ref := Some (Hashtbl.find cg main);
Some main
with Not_found ->
warning "no entry point available: services could be less precise. Use option `-main' to improve them.";
entry_point_ref := None;
None
in
let init_funcs = get_init_funcs main_name cg in
let cg = Service.compute cg init_funcs in
CG.mark_as_computed ();
feedback "analysis done";
cg