coins.backend.ana
Class Dominators

java.lang.Object
  extended bycoins.backend.ana.Dominators
All Implemented Interfaces:
LocalAnalysis

public class Dominators
extends java.lang.Object
implements LocalAnalysis

Find dominators of the control flow graph.


Field Summary
static coins.backend.ana.Dominators.Analyzer analyzer
          Factory singleton.
 BasicBlk[] idom
          BasicBlk-id-indexed array, whose elements are the parents of the block in the dominator tree.
 BiList[] kids
          BasicBlk-id-indexed array, whose elements are the lists of children nodes in the dominator tree.
 
Method Summary
 java.util.Iterator children(BasicBlk blk)
          Return children (immediate dominatees) list iterator of block blk.
 boolean dominates(BasicBlk x, BasicBlk y)
          Test if the block x dominates y.
 BasicBlk immDominator(BasicBlk blk)
          Return immediate dominator of block blk.
 boolean isUpToDate()
          Return true if this analysis is up to date.
 void printAfterBlock(BasicBlk blk, java.io.PrintWriter output)
          Called after each Basic Block.
 void printAfterFunction(java.io.PrintWriter out)
          Dump dominator tree on stream out
 void printAfterStmt(LirNode stmt, java.io.PrintWriter output)
          Called after each statement.
 void printBeforeBlock(BasicBlk blk, java.io.PrintWriter output)
          Called before each Basic Block.
 void printBeforeFunction(java.io.PrintWriter output)
          Debug print entries required by interface.
 void printBeforeStmt(LirNode stmt, java.io.PrintWriter output)
          Called before each statement.
 void printIt(java.io.PrintWriter out)
          Dump dominator tree on stream out (OBSOLETED)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

analyzer

public static final coins.backend.ana.Dominators.Analyzer analyzer
Factory singleton.


idom

public final BasicBlk[] idom
BasicBlk-id-indexed array, whose elements are the parents of the block in the dominator tree.


kids

public final BiList[] kids
BasicBlk-id-indexed array, whose elements are the lists of children nodes in the dominator tree.

Method Detail

isUpToDate

public boolean isUpToDate()
Return true if this analysis is up to date.

Specified by:
isUpToDate in interface LocalAnalysis

immDominator

public BasicBlk immDominator(BasicBlk blk)
Return immediate dominator of block blk.


children

public java.util.Iterator children(BasicBlk blk)
Return children (immediate dominatees) list iterator of block blk.


dominates

public boolean dominates(BasicBlk x,
                         BasicBlk y)
Test if the block x dominates y.


printBeforeFunction

public void printBeforeFunction(java.io.PrintWriter output)
Debug print entries required by interface.

Specified by:
printBeforeFunction in interface LocalAnalysis

printBeforeBlock

public void printBeforeBlock(BasicBlk blk,
                             java.io.PrintWriter output)
Description copied from interface: LocalAnalysis
Called before each Basic Block.

Specified by:
printBeforeBlock in interface LocalAnalysis

printAfterBlock

public void printAfterBlock(BasicBlk blk,
                            java.io.PrintWriter output)
Description copied from interface: LocalAnalysis
Called after each Basic Block.

Specified by:
printAfterBlock in interface LocalAnalysis

printBeforeStmt

public void printBeforeStmt(LirNode stmt,
                            java.io.PrintWriter output)
Description copied from interface: LocalAnalysis
Called before each statement.

Specified by:
printBeforeStmt in interface LocalAnalysis

printAfterStmt

public void printAfterStmt(LirNode stmt,
                           java.io.PrintWriter output)
Description copied from interface: LocalAnalysis
Called after each statement.

Specified by:
printAfterStmt in interface LocalAnalysis

printAfterFunction

public void printAfterFunction(java.io.PrintWriter out)
Dump dominator tree on stream out

Specified by:
printAfterFunction in interface LocalAnalysis

printIt

public void printIt(java.io.PrintWriter out)
Dump dominator tree on stream out (OBSOLETED)