|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectsoot.jimple.toolkits.thread.mhp.PegGraph
Oct. 7, 2003 modify buildPegChain() for building chain without inliner. June 19, 2003 add begin node to peg June 18, 2003 modify the iterator() to be iterator for all nodes of PEG and mainIterator() to be the iterator for main chain. June 12, 2003 add monitor Map, notifyAll Map, waitingNodes Map.
Field Summary | |
protected Map |
allocNodeToObj
|
protected Map |
allocNodeToThread
|
protected Map |
joinStmtToThread
|
HashMap |
startToAllocNodes
|
HashMap |
startToThread
|
protected Map |
threadNameToStart
|
protected Map |
threadNo
|
protected HashMap |
unitToPreds
|
protected HashMap |
unitToSuccs
|
Constructor Summary | |
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set methodsNeedingInlining,
Set allocNodes,
List inlineSites,
Map synchObj,
Set multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
SootMethod sm,
boolean addExceptionEdges,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided Body instance. |
|
PegGraph(CallGraph callGraph,
Hierarchy hierarchy,
PAG pag,
Set methodsNeedingInlining,
Set allocNodes,
List inlineSites,
Map synchObj,
Set multiRunAllocNodes,
Map allocNodeToObj,
Body unitBody,
String threadName,
SootMethod sm,
boolean addExceEdge,
boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
Constructs a graph for the units found in the provided Body instance. |
Method Summary | |
protected void |
addMonitorStmt()
|
boolean |
addPeg(PegGraph pg,
Chain chain)
|
protected void |
addTag()
|
protected void |
buildMaps(PegGraph pg)
|
protected void |
buildPreds()
|
protected void |
buildSuccsForInlining(JPegStmt stmt,
Chain chain,
PegGraph inlinee)
|
protected void |
computeEdgeAndThreadNo()
|
void |
computeMonitorObjs()
|
protected FlowSet |
getAllNodes()
|
protected Map |
getAllocNodeToObj()
|
Map |
getAllocNodeToThread()
|
Body |
getBody()
|
Set |
getCanNotBeCompacted()
|
protected Set |
getExceHandlers()
|
List |
getHeads()
Returns a list of entry points for this graph. |
protected Map |
getJoinStmtToThread()
|
PegChain |
getMainPegChain()
|
Set |
getMethodsNeedingInlining()
|
Map |
getMonitor()
|
Set |
getMonitorObjs()
|
protected boolean |
getNeedInlining()
|
Map |
getNotifyAll()
|
List |
getPredsOf(Object s)
Returns a list of predecessors for the given node in the graph. |
protected Set |
getSpecialJoin()
|
Map |
getStartToAllocNodes()
|
protected Map |
getStartToBeginNodes()
|
Map |
getStartToThread()
|
List |
getSuccsOf(Object s)
Returns a list of successors for the given node in the graph. |
HashSet |
getSynch()
|
List |
getTails()
Returns a list of exit points for this graph. |
protected Set |
getThreadAllocSites()
|
protected Map |
getThreadNameToStart()
|
protected Map |
getUnitToPegMap()
|
protected HashMap |
getUnitToPreds()
|
protected HashMap |
getUnitToSuccs()
|
protected Map |
getWaitingNodes()
|
Iterator |
iterator()
Returns an iterator for the nodes in this graph. |
Iterator |
mainIterator()
|
protected void |
setMonitor(Map m)
|
int |
size()
Returns the node count for this graph. |
protected void |
testIterator()
|
protected void |
testJoinStmtToThread()
|
void |
testMonitor()
|
protected void |
testPegChain(Chain chain)
|
protected void |
testStartToThread()
|
protected void |
testSynch()
|
protected void |
testThreadNameToStart()
|
protected void |
testUnitToPred()
|
protected void |
testUnitToSucc()
|
void |
testWaitingNodes()
|
String |
toString()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected HashMap unitToSuccs
protected HashMap unitToPreds
public HashMap startToThread
public HashMap startToAllocNodes
protected Map threadNo
protected Map threadNameToStart
protected Map allocNodeToObj
protected Map allocNodeToThread
protected Map joinStmtToThread
Constructor Detail |
public PegGraph(CallGraph callGraph, Hierarchy hierarchy, PAG pag, Set methodsNeedingInlining, Set allocNodes, List inlineSites, Map synchObj, Set multiRunAllocNodes, Map allocNodeToObj, Body unitBody, SootMethod sm, boolean addExceptionEdges, boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
addExceptionEdges
- If true then the control flow edges associated with
exceptions are added.public PegGraph(CallGraph callGraph, Hierarchy hierarchy, PAG pag, Set methodsNeedingInlining, Set allocNodes, List inlineSites, Map synchObj, Set multiRunAllocNodes, Map allocNodeToObj, Body unitBody, String threadName, SootMethod sm, boolean addExceEdge, boolean dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock)
dontAddEdgeFromStmtBeforeAreaOfProtectionToCatchBlock
- This was added for Dava.
If true, edges are not added from statement before area of
protection to catch. If false, edges ARE added. For Dava,
it should be true. For flow analyses, it should be false.Method Detail |
protected Map getStartToBeginNodes()
protected Map getJoinStmtToThread()
protected Map getUnitToPegMap()
protected void addMonitorStmt()
public boolean addPeg(PegGraph pg, Chain chain)
protected void buildSuccsForInlining(JPegStmt stmt, Chain chain, PegGraph inlinee)
protected void buildMaps(PegGraph pg)
protected void buildPreds()
public void computeMonitorObjs()
protected boolean getNeedInlining()
protected FlowSet getAllNodes()
protected HashMap getUnitToSuccs()
protected HashMap getUnitToPreds()
public Body getBody()
public List getHeads()
DirectedGraph
getHeads
in interface DirectedGraph
public List getTails()
DirectedGraph
getTails
in interface DirectedGraph
public List getPredsOf(Object s)
DirectedGraph
getPredsOf
in interface DirectedGraph
public List getSuccsOf(Object s)
DirectedGraph
getSuccsOf
in interface DirectedGraph
public Set getCanNotBeCompacted()
public int size()
DirectedGraph
size
in interface DirectedGraph
public Iterator mainIterator()
public Iterator iterator()
DirectedGraph
iterator
in interface DirectedGraph
public String toString()
protected Set getExceHandlers()
protected void setMonitor(Map m)
public Map getMonitor()
public Set getMonitorObjs()
protected Set getThreadAllocSites()
protected Set getSpecialJoin()
public HashSet getSynch()
public Map getStartToThread()
public Map getStartToAllocNodes()
protected Map getWaitingNodes()
public Map getNotifyAll()
protected Map getAllocNodeToObj()
public Map getAllocNodeToThread()
protected Map getThreadNameToStart()
public PegChain getMainPegChain()
public Set getMethodsNeedingInlining()
protected void testIterator()
public void testWaitingNodes()
protected void testStartToThread()
protected void testUnitToSucc()
protected void testUnitToPred()
protected void addTag()
protected void testSynch()
protected void testThreadNameToStart()
protected void testJoinStmtToThread()
protected void testPegChain(Chain chain)
protected void computeEdgeAndThreadNo()
public void testMonitor()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |