method vinst i =
    begin match i with
      | Call(_, e, _, _) ->
        self#incr_both_metrics (self#incr_calls);
        (match e.enode with
          | Lval(Var vinfo, NoOffset->
            if consider_function vinfo then
              begin
                let update_call_map funcmap =
                  self#add_map funcmap vinfo
                    (1 + try VInfoMap.find vinfo !funcmap with Not_found-> 0)
                in
                if self#is_defined_function vinfo
                then update_call_map fundef_calls
                else update_call_map fundecl_calls
              end
          | _ -> ());
      | Set _ ->
        self#incr_both_metrics (self#incr_assigns);
      | _ -> ()
    end;
    Cil.DoChildren