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