anchor.diff:  
       %% Determine used and defined variables in this block.
       FirstNumber = first_number(Is, Last),
  -    {UseDef0,Aliases} = live_interval_blk_1([Last|reverse(Is)],
  -                                            FirstNumber, Aliases0, Use),
  +    UseDef0 = live_interval_blk_1([Last|reverse(Is)], FirstNumber, Use),
       UseDef = rel2fam(UseDef0),
   
       %% Update what is live at the beginning of this block and
  
positive.code:            end,
      Used = beam_ssa:used(I),
      Acc = [{V,{use,N}} || V <- Used] ++ Acc1,
      live_interval_blk_1(Is, FirstNumber, Aliases, Acc);
  live_interval_blk_1([], _FirstNumber, Aliases, Acc) ->
      {Acc,Aliases}.
  
  %% first_number([#b_set{}]) -> InstructionNumber.
  %%  Return the number for the first instruction for the block.
  
negative.code:     [R|merge_ranges_1(Rs)];
  merge_ranges_1([]) -> [].
  
  live_interval_blk(L, Blocks, {Vars0,LiveMap0}) ->
      Live0 = [],
      Successors = beam_ssa:successors(L, Blocks),
      Live1 = update_successors(Successors, L, Blocks, LiveMap0, Live0),
  