let pp_value_coverage () =
  assert (Db.Value.is_computed ());
  let semantic = compute_semantic () in
  let main = fst (Globals.entry_point ()) in
  let syntactic, initializers = compute_syntactic main in
  let unseen = Varinfo.Set.diff syntactic semantic in
  let unseen_num = Varinfo.Set.cardinal unseen in
  let nsyn = Varinfo.Set.cardinal syntactic
  and nsem = Varinfo.Set.cardinal semantic in
  let percent = (float_of_int nsem) /. (float_of_int nsyn) *. 100.0 in
  (fun fmt ->
     Format.fprintf fmt "@[<v 0>Value coverage statistics@ -------------------------@ Syntactically reachable functions = %d@ Semantically reached functions = %d@ Coverage estimation = %.1f%% @ "
       nsyn nsem percent;
     if unseen_num > 0 then
       Format.fprintf fmt "@ @[<v 2>Unseen functions (%d) =@ %a@]"
         unseen_num pp_fun_set_by_file unseen;
     Format.fprintf fmt "@]"
  ),
  (fun fmt ->
     pp_unreached_calls fmt ~syntactic ~semantic initializers)