coins.aflow
クラス SubpFlowImpl

java.lang.Object
  |
  +--coins.aflow.SubpFlowImpl
すべての実装インタフェース:
SubpFlow
直系の既知のサブクラス:
HirSubpFlowImpl

public abstract class SubpFlowImpl
extends java.lang.Object
implements SubpFlow

SubpFlowImpl class: Subprogram flow analysis class. Fields and methods are common between HIR and LIR.


フィールドの概要
protected  BBlock[] fBBlockOfIR
           
protected  FAList fBBlockTable
           
protected  BBlock fCurrentBBlock
           
protected  IrList fDfoList
           
protected  BBlock fEntryBBlock
           
protected  BBlock fExitBBlock
           
protected  FlowExpId[] fExpIdTable
           
 boolean fHirAnalExtended
           
protected  IrList fInverseDfoList
           
protected  int fIrIndexMax
           
protected  int fIrIndexMin
           
 Flow flow
           
 FlowRoot flowRoot
           
protected  BBlock fPrevBBlockInSearch
           
protected  java.util.List fReachableBBlocks
           
protected  RecordAlias fRecordAlias
           
 RecordSetRefReprs fRecordSetRefReprs
           
protected  boolean fRestructured
           
 FlowResults fResults
           
protected  java.util.Set fSetOfAddressTakenVariables
           
protected  java.util.Set fSetOfGlobalVariables
           
protected  SetRefRepr[] fSetRefReprTable
           
protected  SubpDefinition fSubpDefinition
           
protected  java.util.Map fTempExpCorrespondence
           
 HirRoot hirRoot
           
 IoRoot ioRoot
           
 SymRoot symRoot
           
 
コンストラクタの概要
SubpFlowImpl(SubpDefinition pSubpDef, FlowResults pResults)
           
 
メソッドの概要
 void allocateBBlockOfIR()
           
 void allocateExpIdTable()
           
 void allocateSetRefReprTable()
           
 AssignFlowExpId assigner()
          Retuns the AssignFlowExpId object this SubpFlow is associated with.
 BBlock bblock(LabeledStmt pLabeledStmt)
          Create new basic block corresponding to the HIR labeled statement pLabeledStmt.
 BBlockVector bblockVector()
          Create new basic block corresponding to the LIR Prologue node pPrologue.
 java.util.Iterator cfgBfoIterator()
           
 java.util.Iterator cfgFromExitIterator()
          cfgFromExitIterator: Traverse basic blocks in CFG (control flow graph) in inverse depth first order from the exit BBlock.
 java.util.Iterator cfgIterator()
          cfgIterator: Traverse basic blocks in CFG (control flow graph) in depth first order.
 void clear()
          Clear flow analysis information by resetting fIrIndexMin = 0, fIrIndexMax = 0, fSetOfGlobalSymbols, fSetOfAddressTakenSymbols.
 java.util.Set computeSetOfAddressTakenVariables()
          computeSetOfAddressTakenVariables: Compute the set of variables whose address is taken (e.g.
 void computeSetOfAddressTakenVariables(HIR pHir, java.util.Set pSet, boolean pAddrOperand)
          computeSetOfAddressTakenVariables: Compute the set of variables whose address is taken (e.g.
 java.util.Set computeSetOfGlobalVariables()
          computeSetOfGlobalVariables: Compute the set of global variables and record it in fSetOfGlobalVariables.
 void correlateBBlockAndIR()
          correlateBBlockAndIR: Correlate BBlock and IR so that getBBlockOfIR(hir.getIndex()) become effective.
 DefVector defVector()
           
 DefVectorIterator defVectorIterator(DefVector pDefVector)
           
 ExpVector expVector()
           
 ExpVectorIterator expVectorIterator(ExpVector pExpVector)
           
 void findDAvailInAvailOut()
          Finds the "DAvailIn" and "DAvailOut" vectors for all BBlocks contained in this SubpFlow.
 void findDDefInDefOut()
          Finds the "DDefIn" and "DDefOut" vectors for all BBlocks contained in this SubpFlow.
 void findDDefined()
          Finds the "DDefined" vectors for all BBlocks contained in this SubpFlow.
 void findDDefUse()
           
 void findDefUse()
          Finds the DefUseLists for all the FlowAnalSyms that appear in this SubpFlow.
 void findDEGen()
          Finds the "DEGen" vectors for all BBlocks contained in this SubpFlow.
 void findDExposedUsed()
          Finds the "DExpesed" and "PExposed" vectors for all BBlocks contained in this SubpFlow.
 void findDKill()
          Finds the "DKill" vectors for all BBlocks contained in this SubpFlow.
 void findDReach()
          Finds the "DReach" vectors for all BBlocks contained in this SubpFlow.
 void findDUseDef()
           
 void findPDef()
          Finds the "PDef" vectors for all BBlocks contained in this SubpFlow.
 void findPDefined()
          Finds the "PDefined" vectors for all BBlocks contained in this SubpFlow.
 void findPEKill()
          Finds the "PEKill" vectors for all BBlocks contained in this SubpFlow.
 void findPExposedUsed()
          Finds the "PExposed" and "PUsed" vectors for all BBlocks contained in this SubpFlow.
 void findPKill()
          Finds the "PKill" vectors for all BBlocks contained in this SubpFlow.
 void findPLiveInLiveOut()
          Finds the "PLiveIn" and "PLiveOut" vectors for all BBlocks contained in this SubpFlow.
 void findPReach()
          Finds the "PReach" vectors for all BBlocks contained in this SubpFlow.
 void findUseDef()
          Finds the UDLists for all the FlowAnalSyms that appear in this SubpFlow.
 FlowAnalSymVector flowAnalSymVector()
           
 BBlock getBBlock(int pBlockNumber)
          getBBlock: Get the basic block whose block number is pBlockNumber.
 BBlock getBBlockOfIR(int pIndex)
          Get BBlock corresponding to the IR node indexed by pIndex.
 java.util.List getBBlocks()
          Same as { #getReachableBBlocks()}.
 java.util.List getBBlocksFromEntry()
          Returns the list of BBlocks in the breadth first order beginning from the entry bblock.
 java.util.List getBBlocksFromExit()
          Returns the list of BBlocks in the breadth first order beginning from the exit bblock and traversing backward.
 FAList getBBlockTable()
          List of BBlock object that this SubpFlow has ever recorded.
 DefUseList getDefUseList(FlowAnalSym pFlowAnalSym)
          Returns the DefUseList for the given FlowAnalSym in this SubpFlow.
 BBlock getEntryBBlock()
           
 BBlock getExitBBlock()
           
 FlowExpId getExpId(IR pIr)
           
 FlowExpId getExpId(IR pIr, int pIndex)
           
 Exp getExpOfTemp(Var pTempVar)
          Get the expression represented by the temporal variable pTempVar.
 FAList getFlowExpIdTable()
          Returns the FlowExpId table (index number and its associated FlowExpId) for this SubpFlow.
 int getIrIndexMax()
           
 int getIrIndexMin()
           
 int getNumberOfBBlocks()
           
 int getNumberOfRelevantBBlocks()
          Number of reachable BBlocks.
 java.util.List getReachableBBlocks()
          Returns a list of BBlocks that are reachable from the entry BBlock.
 RecordAlias getRecordAlias()
          If returned value is not null, then alias is considered in data flow analysis.
 boolean getRestructureFlag()
           
 SetRefRepr getSetRefReprOfIR(int pIndex)
          Get SetRefRepr corresponding to the IR node indexed by pIndex.
 FAList getSetRefReprs()
          Returns the list of SetRefRepr objects within this SubpFlow.
 SubpDefinition getSubpDefinition()
           
 Subp getSubpSym()
           
 FAList getSymIndexTable()
          Returns the table of symbols possibly accessed in this SubpFlow.
 UDList getUDList(FlowAnalSym pFlowAnalSym)
          Returns the UDList for the given FlowAnalSym in this SubpFlow.
 void initiateDataFlow()
          Initiate data flow analysis.
 void makeDominatorTree()
          Makes the dominator tree.
 void makePostdominatorTree()
          Makes the postdominator tree.
 PointVector pointVector()
           
 PointVectorIterator pointVectorIterator(PointVector pPointVector)
           
 void printExpIdTable()
           
 void recordBBlock(BBlock pBlock)
           
 FlowResults results()
           
 void setBBlockOfIR(BBlock pBBlock, int pIndex)
          Set BBlock corresponding to the IR node indexed by pIndex.
 void setBBlocks(java.util.List pBBlocks)
          Same as { #setReachableBBlocks()}.
 void setDefUseList(FlowAnalSym pFlowAnalSym, DefUseList pDefUseList)
          Sets the DefUseList for the given FlowAnalSym in this SubpFlow.
 void setEntryBBlock(BBlock pBlock)
           
 void setExitBBlock(BBlock pBBlock)
           
 void setExpId(IR pIr, FlowExpId pFlowExpId)
           
 void setExpOfTemp(Var pTempVar, Exp pExp)
          Record pExp as the expression represented by the temporal variable pTempVar.
 void setFlowExpIdTable(FAList pFlowExpIdTable)
          Sets the FlowExpId table (index number and its associated FlowExpId) for this SubpFlow.
 java.util.Set setOfAddressTakenVariables()
           
 java.util.Set setOfGlobalVariables()
           
 void setReachableBBlocks(java.util.List pBBlocks)
          Sets a list of BBlocks that are reachable from the entry BBlock.
 void setRecordAlias(RecordAlias pRecordAlias)
          Record a RecordAlias instance in order to indicate that alias is considered in data flow analysis.
 void setRestructureFlag()
           
 void setSetRefReprOfIR(SetRefRepr pSetRefRepr, int pIndex)
          Set SetRefRepr corresponding to the IR node indexed by pIndex.
 void setSetRefReprs(FAList pSetReprs)
          Sets the list of SetRefRepr objects within this SubpFlow.
 void setSymIndexTable(FAList pSymIndexTable)
          Sets the table of symbols possibly accessed in this SubpFlow.
 void setUDList(FlowAnalSym pFlowAnalSym, UDList pUDList)
          Sets the UDList for the given FlowAnalSym in this SubpFlow.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース coins.aflow.SubpFlow から継承したメソッド
bblockSubtreeIterator, controlFlowAnal
 

フィールドの詳細

flowRoot

public final FlowRoot flowRoot

ioRoot

public final IoRoot ioRoot

symRoot

public final SymRoot symRoot

hirRoot

public final HirRoot hirRoot

flow

public final Flow flow

fSubpDefinition

protected SubpDefinition fSubpDefinition

fPrevBBlockInSearch

protected BBlock fPrevBBlockInSearch

fEntryBBlock

protected BBlock fEntryBBlock

fExitBBlock

protected BBlock fExitBBlock

fCurrentBBlock

protected BBlock fCurrentBBlock

fBBlockTable

protected FAList fBBlockTable

fDfoList

protected IrList fDfoList

fInverseDfoList

protected IrList fInverseDfoList

fReachableBBlocks

protected java.util.List fReachableBBlocks

fResults

public final FlowResults fResults

fHirAnalExtended

public boolean fHirAnalExtended

fRecordSetRefReprs

public RecordSetRefReprs fRecordSetRefReprs

fSetRefReprTable

protected SetRefRepr[] fSetRefReprTable

fBBlockOfIR

protected BBlock[] fBBlockOfIR

fIrIndexMin

protected int fIrIndexMin

fIrIndexMax

protected int fIrIndexMax

fExpIdTable

protected FlowExpId[] fExpIdTable

fRestructured

protected boolean fRestructured

fSetOfGlobalVariables

protected java.util.Set fSetOfGlobalVariables

fSetOfAddressTakenVariables

protected java.util.Set fSetOfAddressTakenVariables

fTempExpCorrespondence

protected java.util.Map fTempExpCorrespondence

fRecordAlias

protected RecordAlias fRecordAlias
コンストラクタの詳細

SubpFlowImpl

public SubpFlowImpl(SubpDefinition pSubpDef,
                    FlowResults pResults)
メソッドの詳細

getEntryBBlock

public BBlock getEntryBBlock()
定義:
インタフェース SubpFlow 内の getEntryBBlock

setEntryBBlock

public void setEntryBBlock(BBlock pBlock)
定義:
インタフェース SubpFlow 内の setEntryBBlock

getExitBBlock

public BBlock getExitBBlock()
定義:
インタフェース SubpFlow 内の getExitBBlock

setExitBBlock

public void setExitBBlock(BBlock pBBlock)
定義:
インタフェース SubpFlow 内の setExitBBlock

bblock

public BBlock bblock(LabeledStmt pLabeledStmt)
インタフェース SubpFlow の記述:
Create new basic block corresponding to the HIR labeled statement pLabeledStmt.

定義:
インタフェース SubpFlow 内の bblock

bblockVector

public BBlockVector bblockVector()
インタフェース SubpFlow の記述:
Create new basic block corresponding to the LIR Prologue node pPrologue.

定義:
インタフェース SubpFlow 内の bblockVector

expVector

public ExpVector expVector()
定義:
インタフェース SubpFlow 内の expVector

pointVector

public PointVector pointVector()
定義:
インタフェース SubpFlow 内の pointVector

defVector

public DefVector defVector()
定義:
インタフェース SubpFlow 内の defVector

flowAnalSymVector

public FlowAnalSymVector flowAnalSymVector()
定義:
インタフェース SubpFlow 内の flowAnalSymVector

pointVectorIterator

public PointVectorIterator pointVectorIterator(PointVector pPointVector)

defVectorIterator

public DefVectorIterator defVectorIterator(DefVector pDefVector)

expVectorIterator

public ExpVectorIterator expVectorIterator(ExpVector pExpVector)

getBBlock

public BBlock getBBlock(int pBlockNumber)
インタフェース SubpFlow の記述:
getBBlock: Get the basic block whose block number is pBlockNumber.

定義:
インタフェース SubpFlow 内の getBBlock
戻り値:
basic block that has pBlockNumber as its block number. If the BBlock having pBlocknumber is deleted (has IS_DELETED flag) then return null.

recordBBlock

public void recordBBlock(BBlock pBlock)
定義:
インタフェース SubpFlow 内の recordBBlock

getNumberOfBBlocks

public int getNumberOfBBlocks()
定義:
インタフェース SubpFlow 内の getNumberOfBBlocks

getSubpDefinition

public SubpDefinition getSubpDefinition()
定義:
インタフェース SubpFlow 内の getSubpDefinition

getSubpSym

public Subp getSubpSym()
定義:
インタフェース SubpFlow 内の getSubpSym

cfgIterator

public java.util.Iterator cfgIterator()
cfgIterator: Traverse basic blocks in CFG (control flow graph) in depth first order. Available methods: next(), hasNext().

定義:
インタフェース SubpFlow 内の cfgIterator

cfgFromExitIterator

public java.util.Iterator cfgFromExitIterator()
インタフェース SubpFlow の記述:
cfgFromExitIterator: Traverse basic blocks in CFG (control flow graph) in inverse depth first order from the exit BBlock. Available methods: next(), hasNext().

定義:
インタフェース SubpFlow 内の cfgFromExitIterator

getBBlockTable

public FAList getBBlockTable()
インタフェース SubpFlow の記述:
List of BBlock object that this SubpFlow has ever recorded. Deleted (unreachable, redundant) BBlocks are included.

定義:
インタフェース SubpFlow 内の getBBlockTable

getBBlocks

public java.util.List getBBlocks()
インタフェース SubpFlow の記述:
Same as { #getReachableBBlocks()}.

定義:
インタフェース SubpFlow 内の getBBlocks

setBBlocks

public void setBBlocks(java.util.List pBBlocks)
インタフェース SubpFlow の記述:
Same as { #setReachableBBlocks()}.

定義:
インタフェース SubpFlow 内の setBBlocks

getReachableBBlocks

public java.util.List getReachableBBlocks()
インタフェース SubpFlow の記述:
Returns a list of BBlocks that are reachable from the entry BBlock. Usually this is the set of BBlocks to consider.

定義:
インタフェース SubpFlow 内の getReachableBBlocks

setReachableBBlocks

public void setReachableBBlocks(java.util.List pBBlocks)
インタフェース SubpFlow の記述:
Sets a list of BBlocks that are reachable from the entry BBlock. Usually this is the set of BBlocks to consider.

定義:
インタフェース SubpFlow 内の setReachableBBlocks

getBBlocksFromEntry

public java.util.List getBBlocksFromEntry()
インタフェース SubpFlow の記述:
Returns the list of BBlocks in the breadth first order beginning from the entry bblock.

定義:
インタフェース SubpFlow 内の getBBlocksFromEntry

getBBlocksFromExit

public java.util.List getBBlocksFromExit()
インタフェース SubpFlow の記述:
Returns the list of BBlocks in the breadth first order beginning from the exit bblock and traversing backward.

定義:
インタフェース SubpFlow 内の getBBlocksFromExit

getNumberOfRelevantBBlocks

public int getNumberOfRelevantBBlocks()
インタフェース SubpFlow の記述:
Number of reachable BBlocks.

定義:
インタフェース SubpFlow 内の getNumberOfRelevantBBlocks

getFlowExpIdTable

public FAList getFlowExpIdTable()
インタフェース SubpFlow の記述:
Returns the FlowExpId table (index number and its associated FlowExpId) for this SubpFlow.

定義:
インタフェース SubpFlow 内の getFlowExpIdTable

setFlowExpIdTable

public void setFlowExpIdTable(FAList pFlowExpIdTable)
インタフェース SubpFlow の記述:
Sets the FlowExpId table (index number and its associated FlowExpId) for this SubpFlow.

定義:
インタフェース SubpFlow 内の setFlowExpIdTable

results

public FlowResults results()
定義:
インタフェース SubpFlow 内の results

assigner

public AssignFlowExpId assigner()
インタフェース SubpFlow の記述:
Retuns the AssignFlowExpId object this SubpFlow is associated with. The AssignFlowExpId object knows which FlowExpId to issue next.

定義:
インタフェース SubpFlow 内の assigner

getSetRefReprs

public FAList getSetRefReprs()
インタフェース SubpFlow の記述:
Returns the list of SetRefRepr objects within this SubpFlow.

定義:
インタフェース SubpFlow 内の getSetRefReprs

setSetRefReprs

public void setSetRefReprs(FAList pSetReprs)
インタフェース SubpFlow の記述:
Sets the list of SetRefRepr objects within this SubpFlow.

定義:
インタフェース SubpFlow 内の setSetRefReprs

cfgBfoIterator

public java.util.Iterator cfgBfoIterator()
定義:
インタフェース SubpFlow 内の cfgBfoIterator

getDefUseList

public DefUseList getDefUseList(FlowAnalSym pFlowAnalSym)
インタフェース SubpFlow の記述:
Returns the DefUseList for the given FlowAnalSym in this SubpFlow.

定義:
インタフェース SubpFlow 内の getDefUseList

setDefUseList

public void setDefUseList(FlowAnalSym pFlowAnalSym,
                          DefUseList pDefUseList)
インタフェース SubpFlow の記述:
Sets the DefUseList for the given FlowAnalSym in this SubpFlow.

定義:
インタフェース SubpFlow 内の setDefUseList

getUDList

public UDList getUDList(FlowAnalSym pFlowAnalSym)
インタフェース SubpFlow の記述:
Returns the UDList for the given FlowAnalSym in this SubpFlow.

定義:
インタフェース SubpFlow 内の getUDList

setUDList

public void setUDList(FlowAnalSym pFlowAnalSym,
                      UDList pUDList)
インタフェース SubpFlow の記述:
Sets the UDList for the given FlowAnalSym in this SubpFlow.

定義:
インタフェース SubpFlow 内の setUDList

getSymIndexTable

public FAList getSymIndexTable()
インタフェース SubpFlow の記述:
Returns the table of symbols possibly accessed in this SubpFlow. Globol symbols are always included.

定義:
インタフェース SubpFlow 内の getSymIndexTable

setSymIndexTable

public void setSymIndexTable(FAList pSymIndexTable)
インタフェース SubpFlow の記述:
Sets the table of symbols possibly accessed in this SubpFlow.

定義:
インタフェース SubpFlow 内の setSymIndexTable

makeDominatorTree

public void makeDominatorTree()
インタフェース SubpFlow の記述:
Makes the dominator tree.

定義:
インタフェース SubpFlow 内の makeDominatorTree

makePostdominatorTree

public void makePostdominatorTree()
インタフェース SubpFlow の記述:
Makes the postdominator tree.

定義:
インタフェース SubpFlow 内の makePostdominatorTree

initiateDataFlow

public void initiateDataFlow()
インタフェース SubpFlow の記述:
Initiate data flow analysis. See subinterfaces for what is actually done.

定義:
インタフェース SubpFlow 内の initiateDataFlow

findPDef

public void findPDef()
インタフェース SubpFlow の記述:
Finds the "PDef" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findPDef

findDDefined

public void findDDefined()
インタフェース SubpFlow の記述:
Finds the "DDefined" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDDefined

findPDefined

public void findPDefined()
インタフェース SubpFlow の記述:
Finds the "PDefined" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findPDefined

findDKill

public void findDKill()
インタフェース SubpFlow の記述:
Finds the "DKill" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDKill

findPKill

public void findPKill()
インタフェース SubpFlow の記述:
Finds the "PKill" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findPKill

findDExposedUsed

public void findDExposedUsed()
インタフェース SubpFlow の記述:
Finds the "DExpesed" and "PExposed" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDExposedUsed

findPExposedUsed

public void findPExposedUsed()
インタフェース SubpFlow の記述:
Finds the "PExposed" and "PUsed" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findPExposedUsed

findDEGen

public void findDEGen()
インタフェース SubpFlow の記述:
Finds the "DEGen" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDEGen

findPEKill

public void findPEKill()
インタフェース SubpFlow の記述:
Finds the "PEKill" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findPEKill

findDReach

public void findDReach()
インタフェース SubpFlow の記述:
Finds the "DReach" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDReach

findPReach

public void findPReach()
インタフェース SubpFlow の記述:
Finds the "PReach" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findPReach

findDAvailInAvailOut

public void findDAvailInAvailOut()
インタフェース SubpFlow の記述:
Finds the "DAvailIn" and "DAvailOut" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDAvailInAvailOut

findPLiveInLiveOut

public void findPLiveInLiveOut()
インタフェース SubpFlow の記述:
Finds the "PLiveIn" and "PLiveOut" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findPLiveInLiveOut

findDDefInDefOut

public void findDDefInDefOut()
インタフェース SubpFlow の記述:
Finds the "DDefIn" and "DDefOut" vectors for all BBlocks contained in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDDefInDefOut

findDDefUse

public void findDDefUse()

findDUseDef

public void findDUseDef()

findDefUse

public void findDefUse()
インタフェース SubpFlow の記述:
Finds the DefUseLists for all the FlowAnalSyms that appear in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findDefUse

findUseDef

public void findUseDef()
インタフェース SubpFlow の記述:
Finds the UDLists for all the FlowAnalSyms that appear in this SubpFlow. The control flow graph must already be created.

定義:
インタフェース SubpFlow 内の findUseDef

allocateSetRefReprTable

public void allocateSetRefReprTable()

getSetRefReprOfIR

public SetRefRepr getSetRefReprOfIR(int pIndex)
インタフェース SubpFlow の記述:
Get SetRefRepr corresponding to the IR node indexed by pIndex. It is cleared by clear() of FlowResults.

定義:
インタフェース SubpFlow 内の getSetRefReprOfIR
戻り値:
SetRefRepr corresponding to the node; return null if no corresponding one.

setSetRefReprOfIR

public void setSetRefReprOfIR(SetRefRepr pSetRefRepr,
                              int pIndex)
インタフェース SubpFlow の記述:
Set SetRefRepr corresponding to the IR node indexed by pIndex. It is cleared by clear() of FlowResults.

定義:
インタフェース SubpFlow 内の setSetRefReprOfIR

correlateBBlockAndIR

public void correlateBBlockAndIR()
インタフェース SubpFlow の記述:
correlateBBlockAndIR: Correlate BBlock and IR so that getBBlockOfIR(hir.getIndex()) become effective. Before calling this, controlFlowAnal() should be called. This may be skipped if setBBlockOfIR is called for each IR in some other processing for the subprogram corresponding to this SubpFlow.

定義:
インタフェース SubpFlow 内の correlateBBlockAndIR

allocateBBlockOfIR

public void allocateBBlockOfIR()

getBBlockOfIR

public BBlock getBBlockOfIR(int pIndex)
インタフェース SubpFlow の記述:
Get BBlock corresponding to the IR node indexed by pIndex. It is cleared by clear() of FlowResults.

定義:
インタフェース SubpFlow 内の getBBlockOfIR
戻り値:
BBlock corresponding to the node; return null if no corresponding one.

setBBlockOfIR

public void setBBlockOfIR(BBlock pBBlock,
                          int pIndex)
インタフェース SubpFlow の記述:
Set BBlock corresponding to the IR node indexed by pIndex. It is cleared by clear() of FlowResults.

定義:
インタフェース SubpFlow 内の setBBlockOfIR

getIrIndexMin

public int getIrIndexMin()
定義:
インタフェース SubpFlow 内の getIrIndexMin

getIrIndexMax

public int getIrIndexMax()
定義:
インタフェース SubpFlow 内の getIrIndexMax

allocateExpIdTable

public void allocateExpIdTable()
定義:
インタフェース SubpFlow 内の allocateExpIdTable

getExpId

public FlowExpId getExpId(IR pIr)
定義:
インタフェース SubpFlow 内の getExpId

getExpId

public FlowExpId getExpId(IR pIr,
                          int pIndex)

setExpId

public void setExpId(IR pIr,
                     FlowExpId pFlowExpId)
定義:
インタフェース SubpFlow 内の setExpId

printExpIdTable

public void printExpIdTable()
定義:
インタフェース SubpFlow 内の printExpIdTable

setOfGlobalVariables

public java.util.Set setOfGlobalVariables()
定義:
インタフェース SubpFlow 内の setOfGlobalVariables

setOfAddressTakenVariables

public java.util.Set setOfAddressTakenVariables()
定義:
インタフェース SubpFlow 内の setOfAddressTakenVariables

clear

public void clear()
インタフェース SubpFlow の記述:
Clear flow analysis information by resetting fIrIndexMin = 0, fIrIndexMax = 0, fSetOfGlobalSymbols, fSetOfAddressTakenSymbols.

定義:
インタフェース SubpFlow 内の clear

computeSetOfGlobalVariables

public java.util.Set computeSetOfGlobalVariables()
computeSetOfGlobalVariables: Compute the set of global variables and record it in fSetOfGlobalVariables.

定義:
インタフェース SubpFlow 内の computeSetOfGlobalVariables
戻り値:
the set of global variables.

computeSetOfAddressTakenVariables

public java.util.Set computeSetOfAddressTakenVariables()
computeSetOfAddressTakenVariables: Compute the set of variables whose address is taken (e.g. (addr (var )), (addr (subs (var ) ... ) ) for this subprogram definition.

定義:
インタフェース SubpFlow 内の computeSetOfAddressTakenVariables

computeSetOfAddressTakenVariables

public void computeSetOfAddressTakenVariables(HIR pHir,
                                              java.util.Set pSet,
                                              boolean pAddrOperand)
computeSetOfAddressTakenVariables: Compute the set of variables whose address is taken (e.g. (addr (var )), (addr (subs (var ) ... ) ) within the given HIR subtree.


setRestructureFlag

public void setRestructureFlag()
定義:
インタフェース SubpFlow 内の setRestructureFlag

getRestructureFlag

public boolean getRestructureFlag()
定義:
インタフェース SubpFlow 内の getRestructureFlag

setRecordAlias

public void setRecordAlias(RecordAlias pRecordAlias)
インタフェース SubpFlow の記述:
Record a RecordAlias instance in order to indicate that alias is considered in data flow analysis. If pRecordAlias is not null, alias is considered. If pRecordAlias is null, alias is not considered.

定義:
インタフェース SubpFlow 内の setRecordAlias
パラメータ:
pRecordAlias - is an instance of RecordAlias keeping the the result of alias analysis for this subprogram.

getRecordAlias

public RecordAlias getRecordAlias()
インタフェース SubpFlow の記述:
If returned value is not null, then alias is considered in data flow analysis. If it is null, then alias is not considered. The returned value is used to get alias information for data flow analysis.

定義:
インタフェース SubpFlow 内の getRecordAlias
戻り値:
RecordAlias instance set by setRecordAlias method.

setExpOfTemp

public void setExpOfTemp(Var pTempVar,
                         Exp pExp)
インタフェース SubpFlow の記述:
Record pExp as the expression represented by the temporal variable pTempVar.

定義:
インタフェース SubpFlow 内の setExpOfTemp
パラメータ:
pTempVar - variable introduced to represent an expression (in process of optimization, etc.).
pExp -

getExpOfTemp

public Exp getExpOfTemp(Var pTempVar)
インタフェース SubpFlow の記述:
Get the expression represented by the temporal variable pTempVar.

定義:
インタフェース SubpFlow 内の getExpOfTemp
パラメータ:
pTempVar - variable introduced to represent an expression (in process of optimization, etc.).
戻り値:
the expression represented by the temporal variable.