|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectharpoon.Analysis.PointerAnalysis.ParIntGraph
public class ParIntGraph
ParIntGraph
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 ParIntGraph |
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. |
static boolean |
MEASURE_AS
Display the gains due to AGGRESSIVE_SHRINKING. |
PersistentSet |
mutated
Contains mutated fields. |
static boolean |
SHOW_ACTIONS
|
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. |
Constructor Summary | |
---|---|
ParIntGraph()
Creates a ParIntGraph . |
Method Summary | |
---|---|
Set |
allNodes()
Returns the set of all nodes that appear in this
parallel interaction graph. |
Object |
clone()
clone produces a copy of the this
Parallel Interaction Graph. |
ParIntGraph |
compressLostNodes(Set lost)
|
boolean |
equals(Object obj)
Check the equality of two ParIntGraph s. |
void |
forAllNodes(PANodeVisitor visitor)
Visits all the nodes that appear in this graph. |
static boolean |
identical(ParIntGraph pig1,
ParIntGraph pig2)
Checks whether two ParIntGraph s are equal or not. |
void |
join(ParIntGraph pig2)
join combines two ParIntGraph s in \
a control-flow join point. |
ParIntGraph |
keepTheEssential(PANode[] params,
boolean is_main)
Produces a ParIntGraph containing only the
nodes that could be reached from the outside. |
ParIntGraph |
keepTheEssential(PANode[] params,
boolean is_main,
Set lost_nodes)
|
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). |
String |
toString()
Pretty-print function for debug purposes. |
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 MEASURE_AS
public static boolean AGGRESSIVE_SHRINKING
public static final ParIntGraph EMPTY_GRAPH
public PointsToGraph G
public PAThreadMap tau
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 PersistentSet mutated
public static boolean SHOW_ACTIONS
Constructor Detail |
---|
public ParIntGraph()
ParIntGraph
.
Method Detail |
---|
public void join(ParIntGraph pig2)
join
combines two ParIntGraph
s in \
a control-flow join point.
public boolean equals(Object obj)
ParIntGraph
s.
equals
in class Object
public Object clone()
clone
produces a copy of the this
Parallel Interaction Graph.
clone
in class Object
public ParIntGraph keepTheEssential(PANode[] params, boolean is_main)
ParIntGraph
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 ParIntGraph keepTheEssential(PANode[] params, boolean is_main, Set lost_nodes)
public ParIntGraph compressLostNodes(Set lost)
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 String toString()
ParIntGraph
s are guaranteed to have the same
string representation.
toString
in class Object
public static boolean identical(ParIntGraph pig1, ParIntGraph pig2)
ParIntGraph
s are equal or not. In
addition to the equals
method, this handles the
comparisom of null
objects.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |