|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsoot.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: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||