anchor.diff:  %%
   %%    killed - Reg is assigned or killed by an allocation instruction.
   %%    not_used - the value of Reg is not used, but Reg must not be garbage
  +%%    exit_not_used - the value of Reg is not used, but must not be garbage
  +%%                    because the stack will be scanned because an
  +%%                    exit BIF will raise an exception
   %%    used - Reg is used
   
   check_liveness(R, [{block,Blk}|Is], St0) ->
  
positive.code: 	    {killed,St0};
  	true ->
  	    case check_liveness_block_1(R, Ss, Ds, Op, Is, St0) of
  		{killed,St} -> {not_used,St};
                  {transparent,St} -> {alloc_used,St};
  		{_,_}=Res -> Res
  	    end
      end;
  check_liveness_block({y,_}=R, [{set,Ds,Ss,{alloc,_Live,Op}}|Is], St) ->
      check_liveness_block_1(R, Ss, Ds, Op, Is, St);
  check_liveness_block(R, [{set,Ds,Ss,Op}|Is], St) ->
      check_liveness_block_1(R, Ss, Ds, Op, Is, St);
  check_liveness_block(_, [], St) -> {transparent,St}.
  
negative.code: 	false ->
  	    case check_liveness_at(R, Fail, St0) of
  		{killed,St1} ->
  		    check_liveness(R, Is, St1);
  		{exit_not_used,St1} ->
  		    check_liveness(R, Is, St1);
  		{not_used,St1} ->
  		    not_used(check_liveness(R, Is, St1));
  