anchor.diff:  
   neighbors(Info) ->
     Info#ig_info.neighbors.
  +
  +move_connected(Info) ->
  +  Info#ig_info.move_connected.
   
   add_edge(X, X, IG) -> IG;
   add_edge(X, Y, IG) ->
     add_arc(X, Y, add_arc(Y, X, IG)).
  +
  +add_move(X, X, IG) -> IG;
  +add_move(X, Y, IG) ->
  +  add_move_arc(X, Y, add_move_arc(Y, X, IG)).
   
   add_arc(X, Y, IG) ->
     Info = hipe_vectors:get(IG, X),
  
positive.code:     build_ig_bb(Xs, LiveOut, IG, Target, TempMap, TempMapping),
    build_ig_instr(X, Live, NewIG, Target, TempMap, TempMapping).
  
  build_ig_instr(X, Live, IG, Target, TempMap, TempMapping) ->
    {Def, Use} = def_use(X, Target, TempMap),
    ?report3("Live ~w\n~w : Def: ~w Use ~w\n",[Live, X, Def,Use]),
    DefListMapped = list_map(Def, TempMapping, []),
    UseListMapped = list_map(Use, TempMapping, []),
    DefSetMapped = ordsets:from_list(DefListMapped),
    UseSetMapped = ordsets:from_list(UseListMapped),
    NewIG = interference_arcs(DefListMapped, ordsets:to_list(Live), IG),
    NewLive = ordsets:union(UseSetMapped, ordsets:subtract(Live, DefSetMapped)),
    {NewLive, NewIG}.
  
  %% Given a list of Keys and an ets-table returns a list of the elements 
  %% in Mapping corresponding to the Keys and appends Acc to this list.
  
negative.code:   New = Info#ig_info{neighbors = [Y|Old]},
    hipe_vectors:set(IG,X,New).
  
  add_move_arc(X, Y, IG) ->
    Info = hipe_vectors:get(IG, X),
    Old = move_connected(Info),
    New = Info#ig_info{move_connected = [Y|Old]},
    hipe_vectors:set(IG,X,New).
  
  normalize_ig(IG) ->
    Size = hipe_vectors:size(IG),
    normalize_ig(Size-1, IG).
  