|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectharpoon.Analysis.PointerAnalysis.PANode
public final class PANode
PANode class models a node for the Pointer Analysis
algorithm.
| Field Summary | |
|---|---|
static int |
CONST
Possible type: constant objects (e.g., Strings) |
static int |
EXCEPT
Possible type: Exception node. |
static int |
INSIDE
Possible type: Inside node |
static int |
INSIDE2
Possible type: node returned by java.lang.Object.clone |
static int |
LOAD
Possible type: Load node |
static int |
LOST
Possible type: lost objects (i.e., objects reachable from unanalyzed parts of the program). |
static int |
NULL
Possible type: null pointers. |
static int |
PARAM
Possible type: Parameter node |
static int |
RETURN
Possible type: Return node. |
static int |
STATIC
Possible type: Static node. |
int |
type
The type of the node |
| Constructor Summary | |
|---|---|
PANode()
|
|
PANode(int type)
Constructor using the default null value for
node_class. |
|
PANode(int type,
GenType[] node_class)
Creates a PANode of type type. |
|
| Method Summary | |
|---|---|
PANode |
csSpecialize(CALL call_site)
Returns the specialized node of this node for
call_site. |
String |
details()
Returns a detailed description of this node for debug
purposes. |
Set |
getAllCSSpecializations()
Returns the set of nodes that were obtained by specializing this one function of some call sites. |
Set |
getAllCSSpecs()
Returns all the call site specializations of this node. |
Set |
getAllTSpecs()
Returns all the thread specializations of this node. |
PANode |
getBarVersion()
Returns the bar version of this node. |
PANode |
getBottom()
Returns the bottom field: the last specialization. |
int |
getCallChainDepth()
Returns the specialization depth of this node. |
PANode |
getCSParent()
Returns the parent of this node, on the call site specialization brach. |
PANode |
getGenuine()
|
GenType[] |
getPossibleClasses()
Returns an array of GenTypes describing all
the possible types (ie HClasses) this node can have. |
PANode |
getRoot()
Returns the root of this node. |
PANode |
getTSParent()
Returns the parent of this node, on the thread specialization branch. |
PANode |
getWTSpec()
Returns the weak thread specialization of this node. |
boolean |
inside()
Checks if this node is an inside one. |
boolean |
isBottom()
Tests whether this is the bottom of some specialization
chain, i.e. |
boolean |
isCSSpec()
Checks whether this node is a call site specialization of another node. |
boolean |
isGenuine()
Checks whether this node is a genuine one. |
boolean |
isPrimitive()
Checks whether this node is an unspecialized one
(a root node in the chain of specialization). |
boolean |
isSpecialized()
Checks whether this node is a specialization of some
other node. |
boolean |
isTSpec()
Checks whether this node is a thread specialization of some other node. |
String |
toString()
Pretty-print function for debug purposes |
PANode |
tSpecialize(MetaMethod run)
Returns the specialized node of this node for the
thread body (ie the run() method) run. |
int |
type()
Returns the type of the node. |
PANode |
wtSpecialize()
Returns the thread specialization of this node. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int INSIDE
public static final int LOAD
public static final int PARAM
public static final int RETURN
throw)
returned by an unanalyzed method.
public static final int EXCEPT
public static final int STATIC
public static final int NULL
public static final int CONST
public static final int LOST
public static final int INSIDE2
public int type
| Constructor Detail |
|---|
public PANode(int type,
GenType[] node_class)
PANode of type type.
type must be one of PANode.INSIDE,
PANode.LOAD etc.
public PANode(int type)
null value for
node_class.
public PANode()
| Method Detail |
|---|
public PANode getBarVersion()
this node.
Each node has two versions:
LOAD
nodes. This makes sense because any non-trivial mappings are for
LOAD nodes.
public PANode getGenuine()
public boolean isGenuine()
this node is a genuine one.
public final int type()
public final boolean inside()
this node is an inside one.
public final GenType[] getPossibleClasses()
GenTypes describing all
the possible types (ie HClasses) this node can have.
If we were unable to determine these types, null is
returned instead; it stands for any type.
public final PANode csSpecialize(CALL call_site)
this node for
call_site. This method is guarranteed to return the
same node if it's called on the same node, with the same argument.PointerAnalysis.CALL_CONTEXT_SENSITIVE is on.
public final Set getAllCSSpecs()
this node.
It returns a set of Map.Entrys, each element consisting
of a mapping from a CALL quad (the call site) to the
specialized node.PointerAnalysis.CALL_CONTEXT_SENSITIVE is on.
public final boolean isCSSpec()
public final PANode getCSParent()
public final PANode getBottom()
public final int getCallChainDepth()
this node.
public final PANode tSpecialize(MetaMethod run)
this node for the
thread body (ie the run() method) run.
This method is guarranteed to return the same node if it's called
on the same node, with the same argument.PointerAnalysis.THREAD_SENSITIVE is on.
public final Set getAllTSpecs()
this node.
It returns a set of Map.Entrys, each element consisting
of a mapping from a MetaMethod (the body of a thread)
to the specialized node.PointerAnalysis.THREAD_SENSITIVE is on.
public final PANode wtSpecialize()
this node.PointerAnalysis.WEAKLY_THREAD_SENSITIVE is on.
public final PANode getWTSpec()
this node.
(returns null if none).PointerAnalysis.WEAKLY_THREAD_SENSITIVE is on.
public final boolean isTSpec()
public final PANode getTSParent()
public Set getAllCSSpecializations()
this one function of some call sites.
public final boolean isSpecialized()
this node is a specialization of some
other node. Relevant only if the
PointerAnalysis.CALL_CONTEXT_SENSITIVE flag is on.
public final boolean isPrimitive()
this node is an unspecialized one
(a root node in the chain of specialization). Relevant only if the
PointerAnalysis.CALL_CONTEXT_SENSITIVE flag is on.
public final PANode getRoot()
this node. This is the root of the
specialization chain which produced this node.
public boolean isBottom()
this is the bottom of some specialization
chain, i.e.
call_chain_depth == PointerAnalysis.MAX_SPEC_DEPTH.
public final String toString()
toString in class Objectpublic final String details()
this node for debug
purposes.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||