|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--harpoon.Analysis.PointerAnalysis.ODParIntGraph
ODParIntGraph
models a Parallel Interaction Graph data
structure. Most of its fields retain the original name from the paper
of Martin and John Whaley.
Field Summary | |
static boolean |
AGGRESSIVE_SHRINKING
Activates the aggressive shrinking. |
ActionRepository |
ar
Maintains the actions executed by the analysed code and the parallel action relation. |
static boolean |
DEBUG
|
static boolean |
DEBUG_AS
Debug for the aggressive shrinking. |
static boolean |
DEBUG2
|
static ODParIntGraph |
EMPTY_GRAPH
Default (empty) graph. |
EdgeOrdering |
eo
Maintains the (conservative) ordering relations between the inside and the outside edges. |
PointsToGraph |
G
Points-to escape graph that summarizes the points-to and escape information for the current thread. |
ODInformation |
odi
Data structures necessary for the ODA. |
PAThreadMap |
tau
The paralel thread map; it attaches to each thread node nT, an integer from the set {0,1,2} where 2 signifies the possibility that multiple instances of nT execute in parallel with the current thread. |
Set |
touched_threads
The set of thread objects that are accessed after they are started. |
Constructor Summary | |
ODParIntGraph()
Creates a ODParIntGraph . |
Method Summary | |
Set |
allNodes()
Returns the set of all the nodes that appear in this
parallel interaction graph.Warning: This method should be called only on graphs that are final (ie they won't be modified through something as an edge addition, etc.). |
Object |
clone()
clone produces a copy of the this
Parallel Interaction Graph. |
boolean |
equals(Object obj)
Check the equality of two ODParIntGraph s. |
void |
forAllNodes(PANodeVisitor visitor)
Visits all the nodes that appear in this graph. |
static boolean |
identical(ODParIntGraph pig1,
ODParIntGraph pig2)
Checks whether two ODParIntGraph s are equal or not. |
boolean |
isCoherent()
|
void |
join(ODParIntGraph pig2)
join combines two ODParIntGraph s in \
a control-flow join point. |
ODParIntGraph |
keepTheEssential(PANode[] params,
boolean is_main)
Produces a ODParIntGraph containing only the
nodes that could be reached from the outside. |
void |
remove(Set nodes)
Removes the nodes from nodes from this
graph. |
void |
removeEmptyLoads()
Simplify this parallel interaction graph by removing the
loads that don't escape anywhere (and hence, don't represent any
object). |
void |
removeEmptyLoads(Set empty_loads,
Set fake_outside_edges)
|
String |
toString()
Pretty-print function for debug purposes. |
void |
touch_thread(PANode nt)
Records the fact that the started thread nt is accessed by its direct startee. |
Methods inherited from class java.lang.Object |
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static boolean DEBUG
public static boolean DEBUG2
public static boolean DEBUG_AS
public static boolean AGGRESSIVE_SHRINKING
public static final ODParIntGraph EMPTY_GRAPH
public PointsToGraph G
public PAThreadMap tau
public Set touched_threads
public ActionRepository ar
alpha
and pi
from the
original paper have been merged into this single field for efficiency
reasons.
public EdgeOrdering eo
before(ei,eo)
is true if the
inside edge ei might be created before the ouside edge eo was read.
public ODInformation odi
Constructor Detail |
public ODParIntGraph()
ODParIntGraph
.
Method Detail |
public void join(ODParIntGraph pig2)
join
combines two ODParIntGraph
s in \
a control-flow join point.
public boolean equals(Object obj)
ODParIntGraph
s.
equals
in class Object
public final void touch_thread(PANode nt)
public Object clone()
clone
produces a copy of the this
Parallel Interaction Graph.
clone
in class Object
public ODParIntGraph keepTheEssential(PANode[] params, boolean is_main)
ODParIntGraph
containing only the
nodes that could be reached from the outside.
(i.e. via parameters,
class nodes, normally or exceptionally returned nodes or the
started thread nodes)
public void forAllNodes(PANodeVisitor visitor)
this
graph.
public Set allNodes()
this
parallel interaction graph.
public void remove(Set nodes)
nodes
from this
graph.
public void removeEmptyLoads()
this
parallel interaction graph by removing the
loads that don't escape anywhere (and hence, don't represent any
object). In addition, the <<n1,f>,n2>
ouside (load) edges where n1
is an unescaped node are
removed too.
public void removeEmptyLoads(Set empty_loads, Set fake_outside_edges)
public String toString()
ODParIntGraph
s are guaranteed to have the same
string representation.
toString
in class Object
public static boolean identical(ODParIntGraph pig1, ODParIntGraph pig2)
ODParIntGraph
s are equal or not. In
addition to the equals
method, this handles the
comparisom of null
objects.
public boolean isCoherent()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |