let rec used_vars_in_instr = function
  | Call _
  | Spill_all
  | Nop -> []
  | Spill_var v
  | Check_avail_with_flags v -> [v]
  | Address_of(v1, v2)
  | Mov_i(v1, v2)
  | Mov_b(v1, v2) -> [v1; v2]
  | Add_i(v1, v2, v3)
  | Mult_i(v1, v2, v3)
  | Cmp_i(v1, v2, _, v3)
  | Sub_i(v1, v2, v3) -> [v1; v2; v3]
  | Proc(_, l) -> l