1
2
3
4
5
6
7 package joeq.Compiler.Analysis.IPSSA;
8
9 import java.util.Set;
10 import java.io.PrintStream;
11 import joeq.Compiler.Quad.BasicBlock;
12 import joeq.Compiler.Quad.Quad;
13
14 /***
15 * @author V.Benjamin Livshits
16 */
17 public interface DominatorQuery {
18 /*** The result is null for the top node of the CFG. */
19 public Quad getImmediateDominator(Quad q);
20 /*** Checks if the node is the top node of the CFG. */
21 public boolean isTop(Quad q);
22 /*** Fills set with the dominance frontier of q */
23 public void getDominanceFrontier(Quad q, Set
24 /*** Fills set with the iterated dominance frontier of q */
25 public void getIteratedDominanceFrontier(Quad q, Set
26 /*** Prints the dominator tree on Quads in dot format. */
27 public void printDot(PrintStream out);
28 public BasicBlock getBasicBlock(Quad quad);
29 };
30