coins.backend.cfg
クラス FlowGraph

java.lang.Object
  |
  +--coins.backend.cfg.FlowGraph

public class FlowGraph
extends java.lang.Object

Represent Control Flow Graph, a directed graph whose nodes are basic blocks.


フィールドの概要
 BiList basicBlkList
          List of basic blocks.
 Function function
          Function owning this CFG.
 
コンストラクタの概要
FlowGraph(Function f, BiList anInstrList)
          Split LIR instruction list into basic blocks and build up CFG.
 
メソッドの概要
 java.util.Iterator basicBlkIterator()
          Return iterator for accessing basic blocks.
 BasicBlk[] blkVectorByPre()
          推奨されていません。 use DFST class instead.
 BasicBlk[] blkVectorByRPost()
          推奨されていません。 use DFST class instead.
 void dfstOrder()
          推奨されていません。 use DFST class instead.
 void dfstOrderHook(DfstHook h)
          推奨されていません。 use DFST class instead.
 BasicBlk entryBlk()
          Return the entry basic block.
 BasicBlk exitBlk()
          Return the exit basic block.
 int idBound()
          Return maximum block numer + 1.
 BasicBlk insertNewBlkBefore(BasicBlk x)
          Insert new empty basic block before block x.
 int maxDfn()
          推奨されていません。 use DFST class instead.
(パッケージプライベート)  BasicBlk newBasicBlk(BiList instr)
          Create new basic block with instruction list instr.
 void printIt(java.io.PrintWriter output)
          Print CFG
 void printIt(java.io.PrintWriter output, LocalAnalysis[] anals)
          Print CFG with callback
 void printStandardForm(java.io.PrintWriter output, java.lang.String indent)
          Print standard form
 int timeStamp()
          Return last modified time of the graph.
 java.lang.Object toSexp()
          Convert to external LIR format.
 void touch()
          Notify that the graph has been modified.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

function

public final Function function
Function owning this CFG.


basicBlkList

public final BiList basicBlkList
List of basic blocks.

コンストラクタの詳細

FlowGraph

public FlowGraph(Function f,
                 BiList anInstrList)
Split LIR instruction list into basic blocks and build up CFG.

メソッドの詳細

timeStamp

public int timeStamp()
Return last modified time of the graph. Time is just a counter rather than actual time-of-the-day.


touch

public void touch()
Notify that the graph has been modified.


newBasicBlk

BasicBlk newBasicBlk(BiList instr)
Create new basic block with instruction list instr.


insertNewBlkBefore

public BasicBlk insertNewBlkBefore(BasicBlk x)
Insert new empty basic block before block x.


idBound

public int idBound()
Return maximum block numer + 1.


dfstOrder

public void dfstOrder()
推奨されていません。 use DFST class instead.

Make Depth First Spanning Tree. Fields dfn(Depth First Number in rever postorder), dfnPre(preorder), parent are set.


dfstOrderHook

public void dfstOrderHook(DfstHook h)
推奨されていません。 use DFST class instead.

Depth First Ordering


maxDfn

public int maxDfn()
推奨されていません。 use DFST class instead.

Return maximum number of DFN (depth first number).


blkVectorByRPost

public BasicBlk[] blkVectorByRPost()
推奨されていません。 use DFST class instead.

Return the vector of basic block indexed by DFN reverse postorder. Zeroth element is null, entry block is in [1].


blkVectorByPre

public BasicBlk[] blkVectorByPre()
推奨されていません。 use DFST class instead.

Return the vector of basic block indexed by DFN preorder. Zeroth element is null, entry block is in [1].


entryBlk

public BasicBlk entryBlk()
Return the entry basic block.


exitBlk

public BasicBlk exitBlk()
Return the exit basic block.


basicBlkIterator

public java.util.Iterator basicBlkIterator()
Return iterator for accessing basic blocks.


toSexp

public java.lang.Object toSexp()
Convert to external LIR format.


printStandardForm

public void printStandardForm(java.io.PrintWriter output,
                              java.lang.String indent)
Print standard form


printIt

public void printIt(java.io.PrintWriter output)
Print CFG


printIt

public void printIt(java.io.PrintWriter output,
                    LocalAnalysis[] anals)
Print CFG with callback