coins.backend.ana
クラス LoopAnalysis

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

public class LoopAnalysis
extends java.lang.Object
implements LocalAnalysis

Detect loop structures in the flow graph.
Algorithm used is taken from:
R. Endre Tarjan, "Testing Flow Graph Reducibility", Journal of Computer and System Sciences 9, 355-365 (1974).


フィールドの概要
static coins.backend.ana.LoopAnalysis.Analyzer analyzer
           
 boolean[] hasExit
          hasExii[i] is true if the loop beginning at basic block i has exit.
 boolean[] isLoop
          isLoop[i] is true if basic block i is a loop entry.
 BiList[] kids
          Children of blocks in the loop tree.
 BasicBlk[] loopHeader
          loopHeader[i] is a entry block of basic block i.
 boolean[] multiEntry
          isLoop[i] is true if the loop beginning at basic block i has multiple entries (i.e. irreducible).
 int[] nestLevel
          nestLevel[i] is depth of the loop beginning at basic block i.
 
メソッドの概要
 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 out)
          Print loop structure.
 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 printIt(java.io.PrintWriter out)
          Print loop structure (OBSOLETED).
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

analyzer

public static final coins.backend.ana.LoopAnalysis.Analyzer analyzer

isLoop

public final boolean[] isLoop
isLoop[i] is true if basic block i is a loop entry.


loopHeader

public final BasicBlk[] loopHeader
loopHeader[i] is a entry block of basic block i.


multiEntry

public final boolean[] multiEntry
isLoop[i] is true if the loop beginning at basic block i has multiple entries (i.e. irreducible).


hasExit

public final boolean[] hasExit
hasExii[i] is true if the loop beginning at basic block i has exit.


nestLevel

public final int[] nestLevel
nestLevel[i] is depth of the loop beginning at basic block i.


kids

public final BiList[] kids
Children of blocks in the loop tree.

メソッドの詳細

isUpToDate

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

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

printIt

public void printIt(java.io.PrintWriter out)
Print loop structure (OBSOLETED).


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 out)
Print loop structure.

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