anchor.diff:  -module(beam_block).
   
   -export([module/2]).
  --import(lists, [reverse/1,reverse/2,foldl/3,member/2]).
  +-import(lists, [reverse/1,reverse/2,member/2]).
   
   -spec module(beam_utils:module_code(), [compile:option()]) ->
                       {'ok',beam_utils:module_code()}.
  
positive.code:         Is4 = move_allocates(Is3),
          Is5 = beam_utils:live_opt(Is4),
          Is6 = opt_blocks(Is5),
          Is = beam_utils:delete_live_annos(Is6),
  
          %% Done.
          {function,Name,Arity,CLabel,Is}
  
negative.code: gen_init(Fs, Regs, Y, Acc) ->
      gen_init(Fs, Regs bsr 1, Y+1, Acc).
  
  init_yregs(Y, Is, D) when Y >= 0 ->
      case beam_utils:is_killed({y,Y}, Is, D) of
          true ->
              (1 bsl Y) bor init_yregs(Y-1, Is, D);
          false ->
              init_yregs(Y-1, Is, D)
      end;
  init_yregs(_, _, _) -> 0.
  
  count_ones(Bits) -> count_ones(Bits, 0).
  count_ones(0, Acc) -> Acc;
  