anchor.diff:  %% is_killed_at(Reg, Lbl, State) -> true|false
   %%  Determine whether Reg is killed at label Lbl.
   
  +-spec is_killed_at(beam_asm:reg(), beam_asm:label(), code_index()) -> boolean().
  +
   is_killed_at(R, Lbl, D) when is_integer(Lbl) ->
       St0 = #live{lbl=D,res=gb_trees:empty()},
       case check_liveness_at(R, Lbl, St0) of
  
positive.code: %%  referenced in ANY way (not even indirectly by an allocate instruction);
  %%  i.e. it is OK to enter the instruction sequence with Register
  %%  containing garbage.
  
  is_killed_block({x,X}, [{set,_,_,{alloc,Live,_}}|_]) ->
      X >= Live;
  
negative.code: %% code_at(Label, State) -> [I].
  %%  Retrieve the code at the given label.
  
  -spec code_at(beam_asm:label(), code_index()) -> [instruction()].
  
  code_at(L, Ll) ->
      gb_trees:get(L, Ll).
  
  %% bif_to_test(Bif, [Op], Fail) -> {test,Test,Fail,[Op]}
  %%  Convert a BIF to a test. Fail if not possible.
  
  -spec bif_to_test(atom(), list(), fail()) -> test().
  
  bif_to_test(is_atom,     [_]=Ops, Fail) -> {test,is_atom,Fail,Ops};
  bif_to_test(is_boolean,  [_]=Ops, Fail) -> {test,is_boolean,Fail,Ops};
  