Class DominatorTree
- java.lang.Object
-
- de.mirkosertic.bytecoder.core.backend.sequencer.DominatorTree
-
public class DominatorTree extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private Graph
graph
private java.util.Map<ControlTokenConsumer,ControlTokenConsumer>
idom
private java.util.List<ControlTokenConsumer>
preOrder
private java.util.List<ControlTokenConsumer>
rpo
-
Constructor Summary
Constructors Constructor Description DominatorTree(Graph graph)
-
Method Summary
-
-
-
Field Detail
-
graph
private final Graph graph
-
preOrder
private final java.util.List<ControlTokenConsumer> preOrder
-
idom
private final java.util.Map<ControlTokenConsumer,ControlTokenConsumer> idom
-
rpo
private final java.util.List<ControlTokenConsumer> rpo
-
-
Constructor Detail
-
DominatorTree
public DominatorTree(Graph graph)
-
-
Method Detail
-
computeRPO
private void computeRPO(ControlTokenConsumer consumer)
-
computeRPO
private void computeRPO(ControlTokenConsumer current, java.util.List<ControlTokenConsumer> finished, java.util.Set<ControlTokenConsumer> visited)
-
getPreOrder
public java.util.List<ControlTokenConsumer> getPreOrder()
-
getRpo
public java.util.List<ControlTokenConsumer> getRpo()
-
computeDominators
private void computeDominators()
-
getIDom
public ControlTokenConsumer getIDom(ControlTokenConsumer node)
-
intersectIDoms
private ControlTokenConsumer intersectIDoms(ControlTokenConsumer v1, ControlTokenConsumer v2)
-
dominates
public boolean dominates(ControlTokenConsumer dominator, ControlTokenConsumer dominated)
Check wheter a node dominates another one.- Parameters:
dominator
-dominated
-- Returns:
- true, if
dominator
dominatesdominated
w.r.t to the entry node
-
getStrictDominators
public java.util.Set<ControlTokenConsumer> getStrictDominators(ControlTokenConsumer n)
-
immediatelyDominatedNodesOf
public java.util.Set<ControlTokenConsumer> immediatelyDominatedNodesOf(ControlTokenConsumer n)
-
domSetOf
public java.util.Set<ControlTokenConsumer> domSetOf(ControlTokenConsumer n)
-
addToDomSet
private void addToDomSet(ControlTokenConsumer n, java.util.Set<ControlTokenConsumer> domset)
-
writeDebugTo
public void writeDebugTo(java.io.OutputStream fileOutputStream)
-
writeDebugTo
public void writeDebugTo(java.io.OutputStream fileOutputStream, ControlTokenConsumer sourceHighlight, java.util.Set<ControlTokenConsumer> destHighlight)
-
-