|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--soot.shimple.internal.analysis.DominanceFrontier
Class to compute the DominanceFrontier using Cytron's celebrated efficient algorithm.
Constructor Summary | |
DominanceFrontier()
|
|
DominanceFrontier(java.util.List dominatorNodeHeads)
|
Method Summary | |
void |
bottomUpDispatch(DominatorNode node)
Make sure we visit children first. |
void |
processNode(DominatorNode node)
Calculate dominance frontier for a set of basic blocks. |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public DominanceFrontier()
public DominanceFrontier(java.util.List dominatorNodeHeads)
Method Detail |
public void bottomUpDispatch(DominatorNode node)
public void processNode(DominatorNode node)
Uses the algorithm of Cytron et al., TOPLAS Oct. 91:
for each X in a bottom-up traversal of the dominator tree do DF(X) < - null for each Y in Succ(X) do if (idom(Y)!=X) then DF(X) <- DF(X) U Y end for each Z in {idom(z) = X} do for each Y in DF(Z) do if (idom(Y)!=X) then DF(X) <- DF(X) U Y end end
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |