anchor.diff:  -include("beam_ssa_opt.hrl").
   -include("beam_types.hrl").
   
  --import(lists, [all/2,any/2,duplicate/2,foldl/3,member/2,
  +-import(lists, [any/2,duplicate/2,foldl/3,member/2,
                   keyfind/3,reverse/1,split/2,zip/2]).
   
   %% The maximum number of #b_ret{} terminators a function can have before
  
positive.code:     Ds = maps:from_list([{Var, FakeCall#b_set{dst=Var}} ||
                              #b_var{}=Var <- Args]),
  
      Ls = #{ ?EXCEPTION_BLOCK => Ts,
              0 => Ts },
  
      Meta = init_metadata(Id, Linear, Args),
  
  
negative.code: simplify(#b_set{op=phi,dst=Dst,args=Args0}=I0, Ts0, Ds0, Ls, Sub) ->
      %% Simplify the phi node by removing all predecessor blocks that no
      %% longer exists or no longer branches to this block.
      {Type, Args} = simplify_phi_args(Args0, Ls, Sub, none, []),
      case phi_all_same(Args) of
          true ->
              %% Eliminate the phi node if there is just one source
              %% value or if the values are identical.
              [{Val, _} | _] = Args,
              Sub#{ Dst => Val };
          false ->
              I = I0#b_set{args=Args},
  
              Ts = Ts0#{ Dst => Type },
              Ds = Ds0#{ Dst => I },
              {I, Ts, Ds}
      end;
  simplify(#b_set{op={succeeded,Kind},args=[Arg],dst=Dst}=I0,
  