coins.ssa
クラス BackTranslateFromSsaBriggs

java.lang.Object
  |
  +--coins.ssa.BackTranslateFromSsaBriggs
すべての実装インタフェース:
LocalTransformer, Transformer

class BackTranslateFromSsaBriggs
extends java.lang.Object
implements LocalTransformer


入れ子クラスの概要
(パッケージプライベート)  class BackTranslateFromSsaBriggs.Couple
           
(パッケージプライベート)  class BackTranslateFromSsaBriggs.CoupleSet
           
(パッケージプライベート)  class BackTranslateFromSsaBriggs.PickingRegister
           
(パッケージプライベート)  class BackTranslateFromSsaBriggs.ReplaceVisitor
           
 
フィールドの概要
static int THR
          The threshold of debug print
 
コンストラクタの概要
BackTranslateFromSsaBriggs(SsaEnvironment enviroment, SsaSymTab ssasymtab, boolean ex)
           
 
メソッドの概要
(パッケージプライベート)  boolean asDest(LirNode src, LirNode instr)
           
(パッケージプライベート)  boolean asUse(LirNode node, LirNode instr)
           
(パッケージプライベート)  void checkWeak(Function func)
           
(パッケージプライベート)  void cutting(LirNode src, LirNode dest, LirNode instr)
           
(パッケージプライベート)  LirNode cuttingCopy(LirNode src, LirNode dest, LirNode copy)
           
 boolean doIt(Data data, ImList args)
          Transform the DATA component.
 boolean doIt(Function function, ImList args)
          Transform the L-function func.
(パッケージプライベート)  LirNode getJthOperand(BasicBlk block, LirNode phinode)
          return J-th operand (corresponding to "block") from "phinode".
(パッケージプライベート)  LirNode getPhiDest(LirNode phinode)
          retun "dest" of "phinode".
(パッケージプライベート)  BiList getPhiNodes(BasicBlk block)
          return "list" of phi-nodes in "block".
(パッケージプライベート)  void insertCopyAtHead(BasicBlk block, LirNode node)
          Insert "node" at block'head.
(パッケージプライベート)  void insertCopyAtTail(BasicBlk block, LirNode node)
           
(パッケージプライベート)  boolean inSucc(BasicBlk block, BasicBlk child)
           
(パッケージプライベート)  boolean isCopy(LirNode node)
           
(パッケージプライベート)  boolean isLiveAtSuccEntry(Symbol s, BasicBlk block)
           
(パッケージプライベート)  boolean isNeedCopy(LirNode node, BasicBlk block)
           
(パッケージプライベート)  boolean isReg(LirNode node)
          retun true if "node" is register.
(パッケージプライベート)  void jumpRepair(BasicBlk block)
           
 java.lang.String name()
          Return the name of the transforming engine.
(パッケージプライベート)  void phiNodeModify(LirNode node, BasicBlk block)
           
(パッケージプライベート)  void printList(BiList target)
           
(パッケージプライベート)  void removePhiNodes()
           
(パッケージプライベート)  boolean removeUselessCopy()
           
(パッケージプライベート)  boolean removeUselessCopyBEFORE()
           
(パッケージプライベート)  void repair(LirNode instr, BasicBlk block)
           
(パッケージプライベート)  void replaceNode(LirNode node1, LirNode node2, LirNode instr)
           
 java.lang.String subject()
          Return brief description of the tranformation.
(パッケージプライベート)  void travel(BasicBlk block, LirNode dest, BiList candidates)
           
(パッケージプライベート)  void updateHash(java.util.Hashtable hashtable, java.lang.Object key, java.lang.Object elem)
          Update "elem" of "hashtable" at "key".
(パッケージプライベート)  void walkPreorder(LirVisitor v, LirNode node)
           
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

THR

public static final int THR
The threshold of debug print

関連項目:
定数フィールド値
コンストラクタの詳細

BackTranslateFromSsaBriggs

public BackTranslateFromSsaBriggs(SsaEnvironment enviroment,
                                  SsaSymTab ssasymtab,
                                  boolean ex)
メソッドの詳細

doIt

public boolean doIt(Data data,
                    ImList args)
インタフェース LocalTransformer の記述:
Transform the DATA component.

定義:
インタフェース LocalTransformer 内の doIt
パラメータ:
data - DATA to be transformed.
args - list of optional arguments.
戻り値:
true if transformation suceeded.

name

public java.lang.String name()
インタフェース Transformer の記述:
Return the name of the transforming engine. Used for trace tag name.

定義:
インタフェース Transformer 内の name
戻り値:
the name of the transforming engine.

subject

public java.lang.String subject()
インタフェース Transformer の記述:
Return brief description of the tranformation.

定義:
インタフェース Transformer 内の subject
戻り値:
brief description of the tranformation.

doIt

public boolean doIt(Function function,
                    ImList args)
インタフェース LocalTransformer の記述:
Transform the L-function func.

定義:
インタフェース LocalTransformer 内の doIt
パラメータ:
function - L-function to be transformed.
args - list of optional arguments.
戻り値:
true if transformation suceeded.

getPhiNodes

BiList getPhiNodes(BasicBlk block)
return "list" of phi-nodes in "block".


getPhiDest

LirNode getPhiDest(LirNode phinode)
retun "dest" of "phinode".


getJthOperand

LirNode getJthOperand(BasicBlk block,
                      LirNode phinode)
return J-th operand (corresponding to "block") from "phinode".


isReg

boolean isReg(LirNode node)
retun true if "node" is register. retun false if "node" is not register.


updateHash

void updateHash(java.util.Hashtable hashtable,
                java.lang.Object key,
                java.lang.Object elem)
Update "elem" of "hashtable" at "key".


insertCopyAtHead

void insertCopyAtHead(BasicBlk block,
                      LirNode node)
Insert "node" at block'head. If there are some phi-functions, "node" is inserted behind thoes.


insertCopyAtTail

void insertCopyAtTail(BasicBlk block,
                      LirNode node)

removePhiNodes

void removePhiNodes()

checkWeak

void checkWeak(Function func)

isNeedCopy

boolean isNeedCopy(LirNode node,
                   BasicBlk block)

phiNodeModify

void phiNodeModify(LirNode node,
                   BasicBlk block)

printList

void printList(BiList target)

travel

void travel(BasicBlk block,
            LirNode dest,
            BiList candidates)

isCopy

boolean isCopy(LirNode node)

inSucc

boolean inSucc(BasicBlk block,
               BasicBlk child)

replaceNode

void replaceNode(LirNode node1,
                 LirNode node2,
                 LirNode instr)

asUse

boolean asUse(LirNode node,
              LirNode instr)

asDest

boolean asDest(LirNode src,
               LirNode instr)

cutting

void cutting(LirNode src,
             LirNode dest,
             LirNode instr)

cuttingCopy

LirNode cuttingCopy(LirNode src,
                    LirNode dest,
                    LirNode copy)

jumpRepair

void jumpRepair(BasicBlk block)

repair

void repair(LirNode instr,
            BasicBlk block)

isLiveAtSuccEntry

boolean isLiveAtSuccEntry(Symbol s,
                          BasicBlk block)

removeUselessCopy

boolean removeUselessCopy()

removeUselessCopyBEFORE

boolean removeUselessCopyBEFORE()

walkPreorder

void walkPreorder(LirVisitor v,
                  LirNode node)