|
|||||||||
| 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 ParIntGraphs. |
void |
forAllNodes(PANodeVisitor visitor)
Visits all the nodes that appear in this graph. |
static boolean |
identical(ParIntGraph pig1,
ParIntGraph pig2)
Checks whether two ParIntGraphs are equal or not. |
void |
join(ParIntGraph pig2)
join combines two ParIntGraphs 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 ParIntGraphs in \
a control-flow join point.
public boolean equals(Object obj)
ParIntGraphs.
equals in class Objectpublic 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()
ParIntGraphs are guaranteed to have the same
string representation.
toString in class Object
public static boolean identical(ParIntGraph pig1,
ParIntGraph pig2)
ParIntGraphs 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 | ||||||||