coins.backend.ana
クラス LiveVariableBitMap

java.lang.Object
  |
  +--coins.backend.ana.DataFlowAnalysis
        |
        +--coins.backend.ana.LiveVariableBitMap
すべての実装インタフェース:
LiveVariableAnalysis, LocalAnalysis

public class LiveVariableBitMap
extends DataFlowAnalysis
implements LiveVariableAnalysis

Live variable analysis. Set information is represented by bitmap vectors.


フィールドの概要
static coins.backend.ana.LiveVariableBitMap.Analyzer analyzer
          Factory singleton.
 
クラス coins.backend.ana.DataFlowAnalysis から継承したフィールド
function, isForward, timeStamp
 
メソッドの概要
 void addLiveInSet(NumberSet x, BasicBlk blk)
          Add set of live variable numbers at entry to NumberSet x.
 void addLiveOutSet(NumberSet x, BasicBlk blk)
          Add set of live variable numbers at exit of block blk to NumberSet x.
(パッケージプライベート)  void confluence(BasicBlk blk)
          Supply confluence operator (=join at here) for block blk.
 void getLiveInSet(NumberSet x, BasicBlk blk)
          Copy set of live variable numbers at entry to NumberSet x.
 void getLiveOutSet(NumberSet x, BasicBlk blk)
          Copy set of live variable numbers at exit of block blk to NumberSet x.
(パッケージプライベート)  void initialize()
          Initialize problem-oriented data structure.
 boolean isLiveAtEntry(int regvar, BasicBlk blk)
          Return true if variable regvar is live at entry of blk.
 boolean isLiveAtEntry(Symbol regvar, BasicBlk blk)
          Return true if variable regvar is live at entry of blk.
 boolean isLiveAtExit(int regvar, BasicBlk blk)
          Return true if variable regvar is live at exit of blk.
 boolean isLiveAtExit(Symbol regvar, BasicBlk blk)
          Return true if variable regvar is live at exit of blk.
 BiList liveIn(BasicBlk blk)
          Return the list of live variables at entry of basic block blk.
 NumberSet liveInSet(BasicBlk blk)
          Return set of live variable numbers at entry of basic block.
 BiList liveOut(BasicBlk blk)
          Return the list of live variables at exit of basic block blk.
 NumberSet liveOutSet(BasicBlk blk)
          Return set of live variable numbers at exit of basic block.
 void printAfterBlock(BasicBlk blk, java.io.PrintWriter output)
          Called after each Basic Block.
 void printAfterFunction(java.io.PrintWriter output)
          Called after function body.
 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.
(パッケージプライベート)  boolean transfer(BasicBlk blk)
          Supply transfer function for block blk.
(パッケージプライベート)  void windUp()
          Finalization.
 
クラス coins.backend.ana.DataFlowAnalysis から継承したメソッド
isUpToDate
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース coins.backend.LocalAnalysis から継承したメソッド
isUpToDate
 

フィールドの詳細

analyzer

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

メソッドの詳細

isLiveAtEntry

public boolean isLiveAtEntry(Symbol regvar,
                             BasicBlk blk)
Return true if variable regvar is live at entry of blk.

定義:
インタフェース LiveVariableAnalysis 内の isLiveAtEntry

isLiveAtEntry

public boolean isLiveAtEntry(int regvar,
                             BasicBlk blk)
Return true if variable regvar is live at entry of blk.

定義:
インタフェース LiveVariableAnalysis 内の isLiveAtEntry

isLiveAtExit

public boolean isLiveAtExit(Symbol regvar,
                            BasicBlk blk)
Return true if variable regvar is live at exit of blk.

定義:
インタフェース LiveVariableAnalysis 内の isLiveAtExit

isLiveAtExit

public boolean isLiveAtExit(int regvar,
                            BasicBlk blk)
Return true if variable regvar is live at exit of blk.

定義:
インタフェース LiveVariableAnalysis 内の isLiveAtExit

liveOut

public BiList liveOut(BasicBlk blk)
Return the list of live variables at exit of basic block blk.

定義:
インタフェース LiveVariableAnalysis 内の liveOut

liveIn

public BiList liveIn(BasicBlk blk)
Return the list of live variables at entry of basic block blk.

定義:
インタフェース LiveVariableAnalysis 内の liveIn

liveInSet

public NumberSet liveInSet(BasicBlk blk)
Return set of live variable numbers at entry of basic block.

定義:
インタフェース LiveVariableAnalysis 内の liveInSet

liveOutSet

public NumberSet liveOutSet(BasicBlk blk)
Return set of live variable numbers at exit of basic block.

定義:
インタフェース LiveVariableAnalysis 内の liveOutSet

getLiveOutSet

public void getLiveOutSet(NumberSet x,
                          BasicBlk blk)
Copy set of live variable numbers at exit of block blk to NumberSet x.

定義:
インタフェース LiveVariableAnalysis 内の getLiveOutSet

addLiveOutSet

public void addLiveOutSet(NumberSet x,
                          BasicBlk blk)
Add set of live variable numbers at exit of block blk to NumberSet x.

定義:
インタフェース LiveVariableAnalysis 内の addLiveOutSet

getLiveInSet

public void getLiveInSet(NumberSet x,
                         BasicBlk blk)
Copy set of live variable numbers at entry to NumberSet x.

定義:
インタフェース LiveVariableAnalysis 内の getLiveInSet

addLiveInSet

public void addLiveInSet(NumberSet x,
                         BasicBlk blk)
Add set of live variable numbers at entry to NumberSet x.

定義:
インタフェース LiveVariableAnalysis 内の addLiveInSet

initialize

void initialize()
Initialize problem-oriented data structure.

定義:
クラス DataFlowAnalysis 内の initialize

confluence

void confluence(BasicBlk blk)
Supply confluence operator (=join at here) for block blk.

定義:
クラス DataFlowAnalysis 内の confluence

transfer

boolean transfer(BasicBlk blk)
Supply transfer function for block blk.

定義:
クラス DataFlowAnalysis 内の transfer

windUp

void windUp()
Finalization.

定義:
クラス DataFlowAnalysis 内の windUp

printBeforeFunction

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

定義:
インタフェース LocalAnalysis 内の printBeforeFunction

printBeforeBlock

public void printBeforeBlock(BasicBlk blk,
                             java.io.PrintWriter output)
インタフェース LocalAnalysis の記述:
Called before each Basic Block.

定義:
インタフェース LocalAnalysis 内の printBeforeBlock

printAfterBlock

public void printAfterBlock(BasicBlk blk,
                            java.io.PrintWriter output)
インタフェース LocalAnalysis の記述:
Called after each Basic Block.

定義:
インタフェース LocalAnalysis 内の printAfterBlock

printBeforeStmt

public void printBeforeStmt(LirNode stmt,
                            java.io.PrintWriter output)
インタフェース LocalAnalysis の記述:
Called before each statement.

定義:
インタフェース LocalAnalysis 内の printBeforeStmt

printAfterStmt

public void printAfterStmt(LirNode stmt,
                           java.io.PrintWriter output)
インタフェース LocalAnalysis の記述:
Called after each statement.

定義:
インタフェース LocalAnalysis 内の printAfterStmt

printAfterFunction

public void printAfterFunction(java.io.PrintWriter output)
インタフェース LocalAnalysis の記述:
Called after function body.

定義:
インタフェース LocalAnalysis 内の printAfterFunction