coins.ir.hir
クラス TestHir2

java.lang.Object
  |
  +--coins.ir.hir.HirVisitorModel2
        |
        +--coins.ir.hir.TestHir2
すべての実装インタフェース:
HirVisitor

public class TestHir2
extends HirVisitorModel2

Example of using HirVisitorModel2. Do primary optimization for HIR before flow analysis.


フィールドの概要
(パッケージプライベート)  HIR hir
           
(パッケージプライベート)  Sym sym
           
 
クラス coins.ir.hir.HirVisitorModel2 から継承したフィールド
fDbgLevel, hirRoot, ioRoot, symRoot
 
コンストラクタの概要
TestHir2(HirRoot pHirRoot)
           
 
メソッドの概要
 void atAssignStmt(AssignStmt p)
           
 void atBlockStmt(BlockStmt p)
           
 void atConstNode(ConstNode p)
           
 void atElemNode(ElemNode p)
           
 void atExp(Exp p)
          Reorder commutative operators that can be exchanged and evaluate the expression if possible.
 void atExpStmt(ExpStmt p)
           
 void atForStmt(ForStmt p)
           
 void atFunctionExp(FunctionExp p)
           
 void atHirList(HirList p)
           
 void atHirSeq(HirSeq p)
           
 void atIfStmt(IfStmt p)
           
 void atInfNode(InfNode p)
           
 void atInfStmt(InfStmt p)
           
 void atIrList(IrList p)
           
 void atJumpStmt(JumpStmt p)
           
 void atLabelDef(LabelDef p)
           
 void atLabeledStmt(LabeledStmt p)
           
 void atLabelNode(LabelNode p)
           
 void atLoopStmt(LoopStmt p)
           
 void atNullNode(NullNode p)
           
 void atPhiExp(PhiExp p)
           
 void atPointedExp(PointedExp p)
           
 void atProgram(Program p)
           
 void atQualifiedExp(QualifiedExp p)
           
 void atRepeatStmt(RepeatStmt p)
           
 void atReturnStmt(ReturnStmt p)
           
 void atSubpDefinition(SubpDefinition p)
           
 void atSubpNode(SubpNode p)
           
 void atSubscriptedExp(SubscriptedExp p)
           
 void atSwitchStmt(SwitchStmt p)
           
 void atSymNode(SymNode p)
           
 void atTypeNode(TypeNode p)
           
 void atUntilStmt(UntilStmt p)
           
 void atVarNode(VarNode p)
           
 void atWhileStmt(WhileStmt p)
           
 boolean isAssociative(Exp pExp)
          Return true if the top operator of the expression is associative (either can be combined to left or to right).
 boolean isCommutative(Exp pExp)
          Return true if the top operator is commutative (exchangeable).
(パッケージプライベート)  Exp reorderOperands(Exp pExp)
           
 
クラス coins.ir.hir.HirVisitorModel2 から継承したメソッド
atAsmStmt, atIndexedLoopStmt, visit, visitChildren
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

hir

HIR hir

sym

Sym sym
コンストラクタの詳細

TestHir2

public TestHir2(HirRoot pHirRoot)
メソッドの詳細

atExp

public void atExp(Exp p)
Reorder commutative operators that can be exchanged and evaluate the expression if possible.

定義:
インタフェース HirVisitor 内の atExp
オーバーライド:
クラス HirVisitorModel2 内の atExp
パラメータ:
p - Expression to be transformed.

atProgram

public void atProgram(Program p)
定義:
インタフェース HirVisitor 内の atProgram
オーバーライド:
クラス HirVisitorModel2 内の atProgram

atSubpDefinition

public void atSubpDefinition(SubpDefinition p)
定義:
インタフェース HirVisitor 内の atSubpDefinition
オーバーライド:
クラス HirVisitorModel2 内の atSubpDefinition

atBlockStmt

public void atBlockStmt(BlockStmt p)
定義:
インタフェース HirVisitor 内の atBlockStmt
オーバーライド:
クラス HirVisitorModel2 内の atBlockStmt

atHirList

public void atHirList(HirList p)
定義:
インタフェース HirVisitor 内の atHirList
オーバーライド:
クラス HirVisitorModel2 内の atHirList

atIrList

public void atIrList(IrList p)
定義:
インタフェース HirVisitor 内の atIrList
オーバーライド:
クラス HirVisitorModel2 内の atIrList

atHirSeq

public void atHirSeq(HirSeq p)
定義:
インタフェース HirVisitor 内の atHirSeq
オーバーライド:
クラス HirVisitorModel2 内の atHirSeq

atInfNode

public void atInfNode(InfNode p)
定義:
インタフェース HirVisitor 内の atInfNode
オーバーライド:
クラス HirVisitorModel2 内の atInfNode

atInfStmt

public void atInfStmt(InfStmt p)
定義:
インタフェース HirVisitor 内の atInfStmt
オーバーライド:
クラス HirVisitorModel2 内の atInfStmt

atVarNode

public void atVarNode(VarNode p)
定義:
インタフェース HirVisitor 内の atVarNode
オーバーライド:
クラス HirVisitorModel2 内の atVarNode

atElemNode

public void atElemNode(ElemNode p)
定義:
インタフェース HirVisitor 内の atElemNode
オーバーライド:
クラス HirVisitorModel2 内の atElemNode

atSubpNode

public void atSubpNode(SubpNode p)
定義:
インタフェース HirVisitor 内の atSubpNode
オーバーライド:
クラス HirVisitorModel2 内の atSubpNode

atTypeNode

public void atTypeNode(TypeNode p)
定義:
インタフェース HirVisitor 内の atTypeNode
オーバーライド:
クラス HirVisitorModel2 内の atTypeNode

atConstNode

public void atConstNode(ConstNode p)
定義:
インタフェース HirVisitor 内の atConstNode
オーバーライド:
クラス HirVisitorModel2 内の atConstNode

atLabelNode

public void atLabelNode(LabelNode p)
定義:
インタフェース HirVisitor 内の atLabelNode
オーバーライド:
クラス HirVisitorModel2 内の atLabelNode

atSymNode

public void atSymNode(SymNode p)
定義:
インタフェース HirVisitor 内の atSymNode
オーバーライド:
クラス HirVisitorModel2 内の atSymNode

atNullNode

public void atNullNode(NullNode p)
定義:
インタフェース HirVisitor 内の atNullNode
オーバーライド:
クラス HirVisitorModel2 内の atNullNode

atLabelDef

public void atLabelDef(LabelDef p)
定義:
インタフェース HirVisitor 内の atLabelDef
オーバーライド:
クラス HirVisitorModel2 内の atLabelDef

atSubscriptedExp

public void atSubscriptedExp(SubscriptedExp p)
定義:
インタフェース HirVisitor 内の atSubscriptedExp
オーバーライド:
クラス HirVisitorModel2 内の atSubscriptedExp

atQualifiedExp

public void atQualifiedExp(QualifiedExp p)
定義:
インタフェース HirVisitor 内の atQualifiedExp
オーバーライド:
クラス HirVisitorModel2 内の atQualifiedExp

atPointedExp

public void atPointedExp(PointedExp p)
定義:
インタフェース HirVisitor 内の atPointedExp
オーバーライド:
クラス HirVisitorModel2 内の atPointedExp

atFunctionExp

public void atFunctionExp(FunctionExp p)
定義:
インタフェース HirVisitor 内の atFunctionExp
オーバーライド:
クラス HirVisitorModel2 内の atFunctionExp

atAssignStmt

public void atAssignStmt(AssignStmt p)
定義:
インタフェース HirVisitor 内の atAssignStmt
オーバーライド:
クラス HirVisitorModel2 内の atAssignStmt

atIfStmt

public void atIfStmt(IfStmt p)
定義:
インタフェース HirVisitor 内の atIfStmt
オーバーライド:
クラス HirVisitorModel2 内の atIfStmt

atLoopStmt

public void atLoopStmt(LoopStmt p)
定義:
インタフェース HirVisitor 内の atLoopStmt
オーバーライド:
クラス HirVisitorModel2 内の atLoopStmt

atWhileStmt

public void atWhileStmt(WhileStmt p)
定義:
インタフェース HirVisitor 内の atWhileStmt
オーバーライド:
クラス HirVisitorModel2 内の atWhileStmt

atForStmt

public void atForStmt(ForStmt p)
定義:
インタフェース HirVisitor 内の atForStmt
オーバーライド:
クラス HirVisitorModel2 内の atForStmt

atUntilStmt

public void atUntilStmt(UntilStmt p)
定義:
インタフェース HirVisitor 内の atUntilStmt
オーバーライド:
クラス HirVisitorModel2 内の atUntilStmt

atRepeatStmt

public void atRepeatStmt(RepeatStmt p)
定義:
インタフェース HirVisitor 内の atRepeatStmt
オーバーライド:
クラス HirVisitorModel2 内の atRepeatStmt

atLabeledStmt

public void atLabeledStmt(LabeledStmt p)
定義:
インタフェース HirVisitor 内の atLabeledStmt
オーバーライド:
クラス HirVisitorModel2 内の atLabeledStmt

atReturnStmt

public void atReturnStmt(ReturnStmt p)
定義:
インタフェース HirVisitor 内の atReturnStmt
オーバーライド:
クラス HirVisitorModel2 内の atReturnStmt

atJumpStmt

public void atJumpStmt(JumpStmt p)
定義:
インタフェース HirVisitor 内の atJumpStmt
オーバーライド:
クラス HirVisitorModel2 内の atJumpStmt

atSwitchStmt

public void atSwitchStmt(SwitchStmt p)
定義:
インタフェース HirVisitor 内の atSwitchStmt
オーバーライド:
クラス HirVisitorModel2 内の atSwitchStmt

atExpStmt

public void atExpStmt(ExpStmt p)
定義:
インタフェース HirVisitor 内の atExpStmt
オーバーライド:
クラス HirVisitorModel2 内の atExpStmt

atPhiExp

public void atPhiExp(PhiExp p)
定義:
インタフェース HirVisitor 内の atPhiExp
オーバーライド:
クラス HirVisitorModel2 内の atPhiExp

reorderOperands

Exp reorderOperands(Exp pExp)
パラメータ:
pExp -
戻り値:
reordered expression.

isCommutative

public boolean isCommutative(Exp pExp)
Return true if the top operator is commutative (exchangeable).

パラメータ:
pExp - Expression to be checked.
戻り値:
true if commutative.

isAssociative

public boolean isAssociative(Exp pExp)
Return true if the top operator of the expression is associative (either can be combined to left or to right).

パラメータ:
pExp - Expression to be checked.
戻り値:
true if the expression is associative.