method vfunc f =
cur_func <- f;
let used = List.fold_left (fun u s ->
let u', _ = UD.computeDeepUseDefStmtKind s.skind in
UD.VS.union u u') UD.VS.empty f.sbody.bstmts in
let used = UD.computeUseLocalTypes ~acc_used:used f in
let unused = List.fold_left (fun un vi ->
if UD.VS.mem vi used
then un
else (if !debug then (Kernel.debug "unusedRemoverClass: %s is unused" vi.vname);
UD.VS.add vi un)) UD.VS.empty f.slocals in
unused_set <- unused;
let good_locals = List.filter self#good_var f.slocals in
f.slocals <- good_locals;
DoChildren