coins.opt
クラス CommonSubexpElim

java.lang.Object
  |
  +--coins.opt.CommonSubexpElim
直系の既知のサブクラス:
CommonSubexpElimHir

public abstract class CommonSubexpElim
extends java.lang.Object

Common subexpression elimination basic logic class.


フィールドの概要
protected  int fDbgLevel
           
protected  java.util.Set fFunctionsWithoutSideEffect
           
 FlowRoot flowRoot
           
 SubpFlow fSubpFlow
           
 Sym sym
           
 SymRoot symRoot
           
 
コンストラクタの概要
CommonSubexpElim(FlowRoot pFlowRoot)
           
 
メソッドの概要
 boolean doBBlockLocal(BBlock pBBlock)
          Performs the common subexpression elimination within the given BBlock.
 boolean doBBlockLocal(SubpFlow pSubpFlow)
          Performs the common subexpression elimination within each BBlock for the given SubpFlow.
(パッケージプライベート) abstract  HIR eliminateComplex(HIR pCompoundNode, HIR pPrevCompoundNode, SetRefRepr pPrevCalcSetRefRepr, SetRefReprList pSetRefReprs, java.util.Map pCompoundToNodeAndSetRefRepr, java.util.Map ContainsMap)
           
(パッケージプライベート) abstract  HIR eliminateSimple(HIR pCompoundNode, HIR pVarNode, SubpFlow pSubpFlow, java.util.Set pModSyms, boolean pMod)
           
(パッケージプライベート) abstract  java.util.Set operandSet(java.lang.Object o)
           
(パッケージプライベート) abstract  void registerUseSyms(HIR pSubtree, java.util.Map pContainsMap, java.lang.Object pCompound)
           
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

flowRoot

public final FlowRoot flowRoot

symRoot

public final SymRoot symRoot

sym

public final Sym sym

fSubpFlow

public final SubpFlow fSubpFlow

fFunctionsWithoutSideEffect

protected java.util.Set fFunctionsWithoutSideEffect

fDbgLevel

protected int fDbgLevel
コンストラクタの詳細

CommonSubexpElim

public CommonSubexpElim(FlowRoot pFlowRoot)
メソッドの詳細

doBBlockLocal

public boolean doBBlockLocal(SubpFlow pSubpFlow)
Performs the common subexpression elimination within each BBlock for the given SubpFlow. Inter-BBlock data flow is not considered (it is assumed no flow exists between BBlocks).

戻り値:
true if the subprogram changed (optimized).

doBBlockLocal

public boolean doBBlockLocal(BBlock pBBlock)
Performs the common subexpression elimination within the given BBlock.

戻り値:
true if the underlying IR has changed (optimized).

operandSet

abstract java.util.Set operandSet(java.lang.Object o)

eliminateSimple

abstract HIR eliminateSimple(HIR pCompoundNode,
                             HIR pVarNode,
                             SubpFlow pSubpFlow,
                             java.util.Set pModSyms,
                             boolean pMod)

eliminateComplex

abstract HIR eliminateComplex(HIR pCompoundNode,
                              HIR pPrevCompoundNode,
                              SetRefRepr pPrevCalcSetRefRepr,
                              SetRefReprList pSetRefReprs,
                              java.util.Map pCompoundToNodeAndSetRefRepr,
                              java.util.Map ContainsMap)

registerUseSyms

abstract void registerUseSyms(HIR pSubtree,
                              java.util.Map pContainsMap,
                              java.lang.Object pCompound)