coins.mdf
クラス MacroFlowGraph

java.lang.Object
  |
  +--coins.mdf.MacroFlowGraph

public class MacroFlowGraph
extends java.lang.Object

This class represents a macro flow graph. Divide a input program into macro tasks and make their predecessors and successors.


入れ子クラスの概要
(パッケージプライベート)  class MacroFlowGraph.ControlBranch
          This class individuate each conditional branches.
 
フィールドの概要
(パッケージプライベート)  MacroFlowGraph.ControlBranch controlBranch
          The conditional branches in the current function
 HirRoot hirRoot
          The current HirRoot
(パッケージプライベート)  Sym idSym
          This symbol represents the ID on threads
 SubpDefinition subpDef
          The current sub program
(パッケージプライベート)  SubpFlow subpFlow
          The current SubpFlow
(パッケージプライベート)  SymRoot symRoot
          The current SymRoot
(パッケージプライベート)  SymTable symTab
          The current symbol table
(パッケージプライベート)  Sym taskSym
          This symbol represents the macro task number
 
コンストラクタの概要
MacroFlowGraph(MdfEnvironment e, HirRoot hRoot, SubpDefinition subpDefinition)
          Constructor:
 
メソッドの概要
(パッケージプライベート)  int bound()
          Return the boundary of the list of the macro tasks.
(パッケージプライベート)  MacroTask entryBlk()
          Get the entry macro task of the current macro flow graph.
(パッケージプライベート)  java.util.List exitBlks()
          Get the list of the exit macro tasks of the current macro flow graph.
 java.util.ListIterator listIterator()
          Get the list iterator of the macro flow graph.
(パッケージプライベート)  MacroTask macroTask(BBlock blk)
          Search the macro task which includes the specified basic block.
(パッケージプライベート)  MacroTask macroTask(Label label)
          Search the macro task which includes the specified label.
(パッケージプライベート)  int numberOfMacroTasks()
          Return the number of the macro tasks.
(パッケージプライベート)  void print()
          Debug print
(パッケージプライベート)  void printGraph(java.lang.String filename)
          Print the node as graphviz format.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

subpDef

public final SubpDefinition subpDef
The current sub program


symRoot

final SymRoot symRoot
The current SymRoot


hirRoot

public final HirRoot hirRoot
The current HirRoot


subpFlow

final SubpFlow subpFlow
The current SubpFlow


symTab

final SymTable symTab
The current symbol table


idSym

final Sym idSym
This symbol represents the ID on threads


taskSym

final Sym taskSym
This symbol represents the macro task number


controlBranch

final MacroFlowGraph.ControlBranch controlBranch
The conditional branches in the current function

コンストラクタの詳細

MacroFlowGraph

public MacroFlowGraph(MdfEnvironment e,
                      HirRoot hRoot,
                      SubpDefinition subpDefinition)
               throws PassException
Constructor:

パラメータ:
e - The environment of the MDF module
hRoot - The current HirRoot
subpDefinition - The current sub program
メソッドの詳細

bound

int bound()
Return the boundary of the list of the macro tasks.

戻り値:
The boundary of the list of the macro tasks

numberOfMacroTasks

int numberOfMacroTasks()
Return the number of the macro tasks.

戻り値:
The number of the macro tasks

macroTask

MacroTask macroTask(BBlock blk)
Search the macro task which includes the specified basic block.

パラメータ:
blk - The basic block
戻り値:
The macro task which includes `blk'

macroTask

MacroTask macroTask(Label label)
Search the macro task which includes the specified label.

パラメータ:
label - The label
戻り値:
The macro task which includes `label'

listIterator

public java.util.ListIterator listIterator()
Get the list iterator of the macro flow graph.

戻り値:
The list iterator

entryBlk

MacroTask entryBlk()
Get the entry macro task of the current macro flow graph. The entry means the macro task which has no predecessors. If there are no entry macro task, then return `null'.

戻り値:
The entry macro task of the current macro flow graph

exitBlks

java.util.List exitBlks()
Get the list of the exit macro tasks of the current macro flow graph. The exit means the macro task which has no successors.

戻り値:
The list of exit macro tasks

print

void print()
Debug print


printGraph

void printGraph(java.lang.String filename)
          throws PassException
Print the node as graphviz format.

パラメータ:
filename - The file name for output
PassException