anchor.diff:               use_bsm3 :: boolean(),
                frames=[] :: [beam_ssa:label()],
                intervals=[] :: [{b_var(),[range()]}],
  -             aliases=[] :: [{b_var(),b_var()}],
                res=[] :: [{b_var(),reservation()}] | #{b_var():=reservation()},
                regs=#{} :: #{b_var():=ssa_register()},
                extra_annos=[] :: [{atom(),term()}]
  
positive.code: 
            %% Allocate registers.
            ?PASS(linear_scan),
            ?PASS(fix_aliased_regs),
            ?PASS(frame_size),
            ?PASS(turn_yregs)],
      [P || P <- Ps, P =/= ignore].
  
negative.code: 
      %% Determine used and defined variables in this block.
      FirstNumber = first_number(Is, Last),
      UseDef0 = live_interval_blk_1([Last|reverse(Is)], FirstNumber, Use),
      UseDef = rel2fam(UseDef0),
  
      %% Update what is live at the beginning of this block and
  