coins.backend.ana
クラス InterferenceGraph

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

public class InterferenceGraph
extends java.lang.Object
implements LocalAnalysis

Create interference graph and disturbance graph


フィールドの概要
static coins.backend.ana.InterferenceGraph.Analyzer analyzer
          Factory singleton.
static coins.backend.ana.InterferenceGraph.Analyzer2 analyzerCopyNotInterfere
          Factory singleton.
 
メソッドの概要
 int disturbedFactor(int x)
          Return disturbed factor of x.
 int disturbingFactor(int x)
          Return disturbing factor of x.
 NumberSet disturbSet(int x)
          Return the set of variables disturbing x.
 NumberSet disturbSet(Symbol x)
          Return the set of variables disturbing x.
 boolean interfere(int x, int y)
          Return true if register x interferes register y.
 boolean interfere(Symbol x, Symbol y)
          Return true if register x interferes register y
 NumberSet interfereSet(int x)
          Return the list of variables interfering x.
 NumberSet interfereSet(Symbol x)
          Return the list of variables interfering x.
 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 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.
 void setDisturb(int x, int y)
           
 void setDisturb(Symbol x, Symbol y)
           
 boolean setInterfere(int x, int y)
           
 boolean setInterfere(Symbol x, Symbol y)
          Add new edge (x, y) to IG.
 boolean unsetInterfere(int x, int y)
           
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

analyzer

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


analyzerCopyNotInterfere

public static final coins.backend.ana.InterferenceGraph.Analyzer2 analyzerCopyNotInterfere
Factory singleton.

メソッドの詳細

setInterfere

public boolean setInterfere(Symbol x,
                            Symbol y)
Add new edge (x, y) to IG. Return true if it's new.


setInterfere

public boolean setInterfere(int x,
                            int y)

unsetInterfere

public boolean unsetInterfere(int x,
                              int y)

setDisturb

public void setDisturb(Symbol x,
                       Symbol y)

setDisturb

public void setDisturb(int x,
                       int y)

interfere

public boolean interfere(int x,
                         int y)
Return true if register x interferes register y. Names of register variables are index numbers.


interfere

public boolean interfere(Symbol x,
                         Symbol y)
Return true if register x interferes register y


interfereSet

public NumberSet interfereSet(int x)
Return the list of variables interfering x.


interfereSet

public NumberSet interfereSet(Symbol x)
Return the list of variables interfering x.


disturbSet

public NumberSet disturbSet(int x)
Return the set of variables disturbing x.


disturbSet

public NumberSet disturbSet(Symbol x)
Return the set of variables disturbing x.


disturbingFactor

public int disturbingFactor(int x)
Return disturbing factor of x.


disturbedFactor

public int disturbedFactor(int x)
Return disturbed factor of x.


isUpToDate

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

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

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