coins.backend.ana
Class ScanVarReference

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

public class ScanVarReference
extends java.lang.Object
implements LocalAnalysis

Scan program and collect register variable use/def statistics.


Field Summary
static coins.backend.ana.ScanVarReference.Analyzer analyzer
          Factory singleton.
 BiList[] defSites
          defSites[v]: List of basic blocks which has definitions of v
 BiList[] outUseSites
          outUseSites[v]: List of basic blocks variables used after
 BasicBlk[] phiDefSite
          phiDefSite[v]: Basic block of PHI-definition point of v.
 BiList[] useSites
          useSites[v]: List of basic blocks which has upward exposed uses of v
 
Method Summary
 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.
 
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.ScanVarReference.Analyzer analyzer
Factory singleton.


defSites

public final BiList[] defSites
defSites[v]: List of basic blocks which has definitions of v


useSites

public final BiList[] useSites
useSites[v]: List of basic blocks which has upward exposed uses of v


outUseSites

public final BiList[] outUseSites
outUseSites[v]: List of basic blocks variables used after


phiDefSite

public final BasicBlk[] phiDefSite
phiDefSite[v]: Basic block of PHI-definition point of v.

Method Detail

isUpToDate

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

Specified by:
isUpToDate in interface LocalAnalysis

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 output)
Description copied from interface: LocalAnalysis
Called after function body.

Specified by:
printAfterFunction in interface LocalAnalysis