Interface PointerKey

All Known Subinterfaces:
FilteredPointerKey, InstanceFieldPointerKey
All Known Implementing Classes:
AbstractFieldPointerKey, AbstractLocalPointerKey, AbstractPointerKey, ArgVertex, ArrayContentsKey, ArrayLengthKey, AstGlobalPointerKey, AstJavaSSAPropagationCallGraphBuilder.EnclosingObjectReferenceKey, ExceptionReturnValueKey, InstanceFieldKey, InstanceFieldKeyWithFilter, JSSyntheticParameterKey, LocalPointerKey, LocalPointerKeyWithFilter, NodeKey, ObjectPropertyCatalogKey, PropagationCallGraphBuilder.TypedPointerKey, PropVertex, PrototypeFieldVertex, ReflectedFieldPointerKey, ReturnValueKey, ReturnValueKeyWithFilter, RetVertex, RTASelectorKey, StaticFieldKey, TransitivePrototypeKey, VarVertex

public interface PointerKey
A PointerKey instance serves as the representative for an equivalence class of pointers. (or more generally ...locations, if we allow primitives).

For example, a PointerKey for 0-CFA might be - a <CGNode,int> pair, where the int represents an SSA value number. This PointerKey would represent all values of the pointer of a particular local variable. - a <FieldReference>, representing the set of instances of a given field in the heap, or of a particular static field.

A PointerKey for 0-1-CFA, with 1-level of InstanceVar context in the Grove et al. terminology, would instead of FieldReference, use a - <InstanceKey, FieldReference> pair