public class ConstantPropagationStore extends java.lang.Object implements Store<ConstantPropagationStore>
Store.FlowRule, Store.Kind| Modifier | Constructor and Description |
|---|---|
|
ConstantPropagationStore() |
protected |
ConstantPropagationStore(java.util.Map<Node,Constant> contents) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canAlias(FlowExpressions.Receiver a,
FlowExpressions.Receiver b)
Can the objects
a and b be aliases? Returns a conservative answer (i.e.,
returns true if not enough information is available to determine aliasing). |
ConstantPropagationStore |
copy() |
boolean |
equals(java.lang.Object o) |
Constant |
getInformation(Node n) |
int |
hashCode() |
ConstantPropagationStore |
leastUpperBound(ConstantPropagationStore other)
Compute the least upper bound of two stores.
|
void |
mergeInformation(Node n,
Constant val) |
void |
setInformation(Node n,
Constant val) |
java.lang.String |
toString() |
void |
visualize(CFGVisualizer<?,ConstantPropagationStore,?> viz)
Delegate visualization responsibility to a visualizer.
|
ConstantPropagationStore |
widenedUpperBound(ConstantPropagationStore previous)
Compute an upper bound of two stores that is wider than the least upper bound of the two
stores.
|
public ConstantPropagationStore copy()
copy in interface Store<ConstantPropagationStore>public ConstantPropagationStore leastUpperBound(ConstantPropagationStore other)
StoreImportant: This method must fulfill the following contract:
this.
other.
this, even if the signature is
more permissive.
leastUpperBound in interface Store<ConstantPropagationStore>public ConstantPropagationStore widenedUpperBound(ConstantPropagationStore previous)
StoreAnalysis. previous must be the previous store.
A particular analysis might not require widening and should implement this method by calling leastUpperBound.
Important: This method must fulfill the following contract:
this.
previous.
this, even if the signature is
more permissive.
widenedUpperBound in interface Store<ConstantPropagationStore>previous - must be the previous storepublic boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean canAlias(FlowExpressions.Receiver a, FlowExpressions.Receiver b)
Storea and b be aliases? Returns a conservative answer (i.e.,
returns true if not enough information is available to determine aliasing).canAlias in interface Store<ConstantPropagationStore>public void visualize(CFGVisualizer<?,ConstantPropagationStore,?> viz)
Storevisualize in interface Store<ConstantPropagationStore>viz - the visualizer to visualize this store