method vinst i =
    (* Need to copy this from rdVisitorClass because we are overriding *)
    if !debug then Kernel.debug "rdVis: before %a, rd_dat_lst is %d long"
      d_instr i (List.length rd_dat_lst);
    (try
      cur_rd_dat <- Some(List.hd rd_dat_lst);
      rd_dat_lst <- List.tl rd_dat_lst
    with Failure "hd" ->
      if !debug then (Kernel.debug "rdVis: il rd_dat_lst mismatch"));
    match i with
      Set((Var vi,_off),_,_) ->
        if IH.mem iioh vi.vid
        then (IH.replace iioh vi.vid NoneDoChildren)
        else (IH.add iioh vi.vid NoneDoChildren)
    | _ -> DoChildren