|
|||||||||
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 GenType s describing all
the possible types (ie HClass es) 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()
GenType
s describing all
the possible types (ie HClass
es) 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.Entry
s, 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.Entry
s, 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 Object
public final String details()
this
node for debug
purposes.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |