|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--soot.jimple.spark.pag.PAG
Pointer assignment graph.
Field Summary | |
protected java.util.Map |
alloc
|
protected java.util.Map |
allocInv
|
protected java.util.ArrayList |
dereferences
|
protected static Node[] |
EMPTY_NODE_ARRAY
|
protected java.util.Map |
load
|
protected java.util.Map |
loadInv
|
protected int |
nextAllocNodeId
|
protected int |
nextNodeId
|
protected OnFlyCallGraph |
ofcg
|
protected SparkOptions |
opts
|
protected P2SetFactory |
setFactory
|
protected java.util.Map |
simple
|
protected java.util.Map |
simpleInv
|
protected static boolean |
somethingMerged
|
protected java.util.Map |
store
|
protected java.util.Map |
storeInv
|
protected TypeManager |
typeManager
|
protected java.util.Map |
valToAllocNode
|
protected java.util.Map |
valToVarNode
|
Fields inherited from interface soot.jimple.spark.PointsToAnalysis |
ARRAY_ELEMENTS_NODE, CAST_NODE, EXCEPTION_NODE, RETURN_NODE, RETURN_STRING_CONSTANT_NODE, STRING_ARRAY_NODE, STRING_ARRAY_NODE_LOCAL, STRING_NODE, STRING_NODE_LOCAL, THIS_NODE, THROW_NODE |
Constructor Summary | |
PAG(SparkOptions opts)
|
Method Summary | |
void |
addDereference(VarNode base)
Adds the base of a dereference to the list of dereferenced variables. |
boolean |
addEdge(Node from,
Node to)
Adds an edge to the graph, returning false if it was already there. |
protected boolean |
addToMap(java.util.Map m,
Node key,
Node value)
|
Node[] |
allocInvLookup(VarNode key)
|
java.util.Set |
allocInvSources()
|
Node[] |
allocLookup(AllocNode key)
|
java.util.Set |
allocSources()
|
java.util.Set |
allVarNodes()
|
void |
cleanUpMerges()
|
AllocDotField |
findAllocDotField(AllocNode an,
SparkField field)
Finds the AllocDotField for base AllocNode an and field field, or returns null. |
FieldRefNode |
findFieldRefNode(java.lang.Object baseValue,
SparkField field)
Finds the FieldRefNode for base variable value and field field, or returns null. |
VarNode |
findVarNode(java.lang.Object value)
Finds the VarNode for the variable value, or returns null. |
java.util.List |
getDereferences()
Returns list of dereferences variables. |
int |
getNumAllocNodes()
|
OnFlyCallGraph |
getOnFlyCallGraph()
|
SparkOptions |
getOpts()
Returns SparkOptions for this graph. |
P2SetFactory |
getSetFactory()
|
TypeManager |
getTypeManager()
|
Node[] |
loadInvLookup(VarNode key)
|
java.util.Set |
loadInvSources()
|
Node[] |
loadLookup(FieldRefNode key)
|
java.util.Set |
loadSources()
|
protected Node[] |
lookup(java.util.Map m,
java.lang.Object key)
|
AllocDotField |
makeAllocDotField(AllocNode an,
SparkField field)
Finds or creates the AllocDotField for base variable baseValue and field field, of type t. |
AllocNode |
makeAllocNode(java.lang.Object newExpr,
Type type)
Finds or creates the AllocNode for the new expression newExpr, of type type. |
FieldRefNode |
makeFieldRefNode(java.lang.Object baseValue,
Type baseType,
SparkField field,
SootMethod method)
Finds or creates the FieldRefNode for base variable baseValue and field field, of type type. |
FieldRefNode |
makeFieldRefNode(VarNode base,
SparkField field)
Finds or creates the FieldRefNode for base variable base and field field, of type type. |
VarNode |
makeVarNode(java.lang.Object value,
Type type,
SootMethod method)
Finds or creates the VarNode for the variable value, of type type. |
PointsToSet |
reachingObjects(SootMethod method,
Stmt stmt,
Local l)
Returns the set of objects reaching variable l before stmt in method. |
void |
setOnFlyCallGraph(OnFlyCallGraph ofcg)
|
Node[] |
simpleInvLookup(VarNode key)
|
java.util.Set |
simpleInvSources()
|
Node[] |
simpleLookup(VarNode key)
|
java.util.Set |
simpleSources()
|
Node[] |
storeInvLookup(FieldRefNode key)
|
java.util.Set |
storeInvSources()
|
Node[] |
storeLookup(VarNode key)
|
java.util.Set |
storeSources()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected int nextNodeId
protected int nextAllocNodeId
protected SparkOptions opts
protected java.util.Map simple
protected java.util.Map load
protected java.util.Map store
protected java.util.Map alloc
protected java.util.Map simpleInv
protected java.util.Map loadInv
protected java.util.Map storeInv
protected java.util.Map allocInv
protected static final Node[] EMPTY_NODE_ARRAY
protected java.util.Map valToVarNode
protected java.util.Map valToAllocNode
protected P2SetFactory setFactory
protected OnFlyCallGraph ofcg
protected static boolean somethingMerged
protected java.util.ArrayList dereferences
protected TypeManager typeManager
Constructor Detail |
public PAG(SparkOptions opts)
Method Detail |
public PointsToSet reachingObjects(SootMethod method, Stmt stmt, Local l)
reachingObjects
in interface PointsToAnalysis
public SparkOptions getOpts()
public AllocNode makeAllocNode(java.lang.Object newExpr, Type type)
public VarNode findVarNode(java.lang.Object value)
public VarNode makeVarNode(java.lang.Object value, Type type, SootMethod method)
public FieldRefNode findFieldRefNode(java.lang.Object baseValue, SparkField field)
public FieldRefNode makeFieldRefNode(java.lang.Object baseValue, Type baseType, SparkField field, SootMethod method)
public FieldRefNode makeFieldRefNode(VarNode base, SparkField field)
public AllocDotField findAllocDotField(AllocNode an, SparkField field)
public AllocDotField makeAllocDotField(AllocNode an, SparkField field)
public boolean addEdge(Node from, Node to)
public Node[] simpleLookup(VarNode key)
public Node[] simpleInvLookup(VarNode key)
public Node[] loadLookup(FieldRefNode key)
public Node[] loadInvLookup(VarNode key)
public Node[] storeLookup(VarNode key)
public Node[] storeInvLookup(FieldRefNode key)
public Node[] allocLookup(AllocNode key)
public Node[] allocInvLookup(VarNode key)
public java.util.Set simpleSources()
public java.util.Set allocSources()
public java.util.Set storeSources()
public java.util.Set loadSources()
public java.util.Set simpleInvSources()
public java.util.Set allocInvSources()
public java.util.Set storeInvSources()
public java.util.Set loadInvSources()
public java.util.Set allVarNodes()
public P2SetFactory getSetFactory()
public int getNumAllocNodes()
public TypeManager getTypeManager()
public void setOnFlyCallGraph(OnFlyCallGraph ofcg)
public OnFlyCallGraph getOnFlyCallGraph()
public void cleanUpMerges()
public void addDereference(VarNode base)
public java.util.List getDereferences()
protected boolean addToMap(java.util.Map m, Node key, Node value)
protected Node[] lookup(java.util.Map m, java.lang.Object key)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |