@SuppressWarnings("unchecked")
 @Override
 public boolean equals(Object obj) {
   if (obj instanceof Marker.BasePointersSet) {
     BasePointersSet other = (BasePointersSet) obj;
     return variables.equals(other.variables);
   } else {
     return false;
   }
 }
 @Override
 public void remove(Value v) {
   Variable base = (Variable) v.getLIRKind().getDerivedReferenceBase();
   assert !base.getLIRKind().isValue();
   variables.put(base.index, null);
 }
 @Override
 public void putAll(BasePointersSet v) {
   variables.putAll(v.variables);
 }