method vstmt s =
    ignore(super#vstmt s);
    match s.skind with
    | Instr _ -> DoChildren
    | _ -> begin
        let u,_d = UD.computeUseDefStmtKind s.skind in
        match self#get_cur_iosh() with
        | Some iosh ->
            UD.VS.iter (fun vi ->
              if IH.mem iosh vi.vid then
                let ios = IH.find iosh vi.vid in
                RD.IOS.iter (function
                  | Some i -> begin (* add s.sid to set for i *)
                      try
                        let set = IH.find sidUseSetHash i in
                        IH.replace sidUseSetHash i (IS.add s.sid set)
                      with Not_found ->
                        IH.add sidUseSetHash i (IS.singleton s.sid)
                  end
                  | None -> ()) ios) u;
            DoChildren
        | None -> DoChildren
    end