|
|||||||||
| 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 | ||||||||