|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--coins.flow.SubpFlowImpl
SubpFlowImpl class Subprogram flow analysis class. Fields and methods are common between HIR and LIR.
インタフェース coins.flow.SubpFlow から継承したフィールド |
CF_BBLOCK, CF_CFG, CF_DOMINATOR, CF_INDEXED, CF_POSTDOMINATOR, DF_AVAILIN, DF_AVAILOUT, DF_DEF, DF_DEFIN, DF_DEFINED, DF_DEFOUT, DF_DEFUSE, DF_DEFUSEEXHAUST, DF_DEFUSELIST, DF_EGEN, DF_EKILL, DF_EXPID, DF_EXPOSED, DF_KILL, DF_LIVEIN, DF_LIVEOUT, DF_MAX, DF_MIN, DF_REACH, DF_SETREFREPR, DF_TRSNSPARENT, DF_USED, DF_USEDEFEXHAUST, DF_USEDEFLIST, FLAG_EXPID_LHS |
コンストラクタの概要 | |
SubpFlowImpl()
|
|
SubpFlowImpl(FlowRoot pFlowRoot,
SubpDefinition pSubpDefinition)
|
メソッドの概要 | |
void |
addDefNode(FlowAnalSym pSym,
IR pDefNode)
|
void |
addUseNode(FlowAnalSym pSym,
IR pUseNode)
|
void |
allocateBBlockOfIR()
|
BBlock |
bblock()
Create dummy basic block. |
BBlock |
bblock(LabeledStmt pLabeledStmt)
Create new basic block corresponding to the HIR labeled statement pLabeledStmt. |
BBlockNodeIterator |
bblockNodeIterator(BBlock pBBlock)
bblockNodeItrator Get iterator that traverse all nodes of the basic block pBBlock. |
BBlockStmtIterator |
bblockStmtIterator(BBlockHir pBBlock)
bblockStmtIterator get iterator to traverse statements in the basic block pBBlock. |
BBlockSubtreeIterator |
bblockSubtreeIterator(BBlock pBBlock)
bblockSubtreeItrator Get iterator that traverse top subtrees of the basic block pBBlock. |
BBlockVector |
bblockVector()
|
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. |
java.util.List |
changeListOfFlowBBlocksToListOfAflowBBlocks(java.util.List pListOfFlowBBlocks)
|
void |
clearControlFlow()
Clear all control/data flow analysis information. |
void |
clearDataFlow()
Clear data flow information. |
void |
computeBBlockSetRefReprs()
|
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 |
copyFlowAnalData(SubpFlow pSubpFlow)
|
void |
correlateBBlockAndIR()
|
DefVector |
defVector()
|
DefVectorIterator |
defVectorIterator(DefVector pDefVector)
|
ExpVector |
expVector()
|
ExpVectorIterator |
expVectorIterator(ExpVector pExpVector)
|
FlowAnalSymVector |
flowAnalSymVector()
|
java.lang.String |
generateExpIdName()
generateExpIdName Generate a name of expression identifier _xId1, _xId2, _xId3, ... |
SubpFlow |
getAflowSubpFlow(FlowResults pFlowResults)
|
int |
getAssignCount()
|
BBlock |
getBBlock(HIR pHir)
|
BBlock |
getBBlock(int pBlockNumber)
getBBlock Get the basic block whose block number is pBlockNumber. |
BBlock |
getBBlock0(Label pLabel)
|
BBlock |
getBBlockForLabel(Label pLabel)
|
BBlock |
getBBlockFromNodeIndex(int pNodeIndex)
|
java.util.List |
getBBlockList()
Returns the List of BBlocks in the flow excluding null and 0-numbered BBlock. |
BBlock |
getBBlockOfIR(int pIndex)
|
java.util.ArrayList |
getBBlockTable()
Get BBlockTable of this subprogram. |
int |
getBBlockVectorBitCount()
|
int |
getBBlockVectorWordCount()
|
int |
getCallCount()
|
int |
getComplexityLevel()
Get the complexity level of this subprogram. 1: simple. |
int |
getDefCount()
|
int |
getDefIndex(int pNodeIndex)
Get def-index from node index. |
java.util.Set |
getDefinedSyms()
getDefinedSyms Set of all symbols whose value is set in this subprogram. |
java.util.List |
getDefNodeList(FlowAnalSym pSym)
|
IR |
getDefPoint(int pIndex)
Get IR node from def-index |
DefUseList |
getDefUseExhaustiveList()
|
DefUseList |
getDefUseList()
|
int |
getDefVectorBitCount()
|
int |
getDefVectorWordCount()
|
java.util.List |
getDominatorList(BBlock pBBlock)
Get the list of dominators of pBBlock. |
BBlockVector |
getDominators(BBlock pBBlock)
Get BBlockVector representing dominators of pBBlock. |
BBlock |
getEntryBBlock()
Get the entry basic block. |
BBlock |
getExitBBlock()
|
ExpId |
getExpId(IR pIr)
|
ExpId |
getExpId(IR pIr,
int pIndex)
|
java.util.List |
getExpIdList()
|
Exp |
getExpOfTemp(Var pTempVar)
Get the expression represented by the temporal variable pTempVar. |
int |
getExpVectorBitCount()
|
int |
getExpVectorWordCount()
|
FlowAdapter |
getFlowAdapter()
|
int |
getFlowAnalStateLevel()
|
FlowAnalSym[] |
getFlowAnalSymTable()
|
FlowRoot |
getFlowRoot()
|
IR |
getIndexedNode(int pNodeIndex)
|
FlowAnalSym |
getIndexedSym(int pSymIndex)
|
int |
getIrIndexMax()
|
int |
getIrIndexMin()
|
HIR |
getLinkedSubtreeOfExpId(ExpId pExpId)
|
java.util.List |
getListOfBBlocksFromEntry()
|
java.util.List |
getListOfBBlocksFromExit()
|
DefUseList |
getListOfDefUseExhaustiveList()
|
DefUseList |
getListOfDefUseList()
|
UseDefList |
getListOfUseDefExhaustiveList()
|
UseDefList |
getListOfUseDefList()
|
java.util.Set |
getMaximalCompoundVars()
Get the set of maximal compound variables. |
int |
getNumberOfBBlocks()
|
int |
getNumberOfDefUsedGlobalSymbols()
|
int |
getNumberOfNodes()
|
int |
getPointVectorBitCount()
|
int |
getPointVectorWordCount()
|
java.util.List |
getPostDominatorList(BBlock pBBlock)
Get the list of post dominators of pBBlock. |
BBlockVector |
getPostDominators(BBlock pBBlock)
Get BBlockVector representing post dominators of pBBlock. |
BBlock |
getPrevBBlockInSearch()
|
java.util.List |
getReachableBBlocks()
Get list of BBlocks reachable from entry BBLock. |
RecordAlias |
getRecordAlias()
If returned value is not null, then alias is considered in data flow analysis. |
IR |
getRefPoint(int pIndex)
Get IR node from ref-index |
boolean |
getRestructureFlag()
|
SetRefReprList |
getSetRefReprList(BBlock pBBlock)
|
SetRefRepr |
getSetRefReprOfIR(IR pIR)
|
SubpDefinition |
getSubpDefinition()
|
Subp |
getSubpSym()
|
int |
getSymExpCount()
|
UseDefList |
getUseDefExhaustiveList()
|
UseDefList |
getUseDefList()
|
int |
getUsedSymCount()
|
java.util.Set |
getUsedSyms()
getUsed Set of all symbols whose value is used in this subprogram. |
java.util.List |
geUseNodeList(FlowAnalSym pSym)
|
boolean |
hasCallUnder(IR pIR)
Returns true if the given IR node has as its decendant a call node. |
void |
initiateControlFlowAnal(SubpDefinition pSubpDefinition,
int pIndexMin,
int pIndexMax)
|
void |
initiateDataFlowAnal(SubpDefinition pSubpDefinition)
initiateDataFlowAnal Initiate bit vectors, and initiate fields in SetRefRepls, etc. |
boolean |
isComputed(int pItemIndex)
Test if a control/data flow item is already computed or not. |
boolean |
isComputedOrUnderComputation(int pItemIndex)
|
boolean |
isFailed()
|
PointVector |
pointVector()
|
PointVectorIterator |
pointVectorIterator(PointVector pPointVector)
|
(パッケージプライベート) void |
printComputedFlag()
|
void |
printExpIdAndIrCorrespondence()
|
void |
recordBBlock(BBlock pBlock,
int pBlockNumber)
|
int |
recordDefPoint(IR pIR)
|
int |
recordDefRefPoint(IR pIR)
|
protected int |
recordSym(FlowAnalSym pSym)
|
void |
resetComputedFlag(int pItemIndex)
Reset computed flag for all items whose item numbers are greater or equal to pItemIndex. |
void |
resetControlAndDataFlowInformation()
Clear all control/data flow analysis information after executing setIndexNumberTOAllNodes. |
void |
resetExpId()
|
void |
resetFlowSymLink(SymTable pSymTable)
resetFlowSymLink Reset all flow analysis information of symbols in pSymTable and its descendents. |
void |
resetFlowSymLinkForRecordedSym()
linkLirWithDataFlowForSubp Reset links between flow information and LIR nodes, symbols, etc. |
void |
resetFlowSymLinkForTable(SymTable pSymTable)
|
void |
resetGlobalFlowSymLink()
resetGlobalFlowSymLink Reset all flow analysis information of symbols that are contained in ancestor symbol table (symTableRoot, etc) without traversing its descendents. |
void |
setBBlock(HIR pHir,
BBlock pBBlock)
|
void |
setBBlock(Label pLabel,
BBlock pBBlock)
|
void |
setBBlockOfIR(BBlock pBBlock,
int pIndex)
|
void |
setBBlockVectorBitCount(int pBitCount)
|
void |
setComputedFlag(int pItemIndex)
Set the control/data flow item to be computed as true. |
void |
setDefVectorBitCount(int pBitCount)
|
void |
setEntryBBlock(BBlock pBlock)
|
void |
setExitBBlock(BBlock pBlock)
|
void |
setExpId(IR pIr,
ExpId pExpId)
|
void |
setExpOfTemp(Var pTempVar,
Exp pExp)
Record pExp as the expression represented by the temporal variable pTempVar. |
void |
setExpVectorBitCount(int pBitCount)
|
void |
setFlowAnalStateLevel(int pState)
|
void |
setNumberOfNodes(int pCount)
|
java.util.Set |
setOfAddressTakenVariables()
|
java.util.Set |
setOfGlobalVariables()
|
void |
setPointVectorBitCount(int pBitCount)
|
void |
setPrevBBlockInSearch(BBlock pPrev)
setPrevBBlockInSearch getPrevBBlockInSearch Methods used in linking basic blocks in depth first order, etc. |
void |
setRecordAlias(RecordAlias pRecordAlias)
Record a RecordAlias instance in order to indicate that alias is considered in data flow analysis. |
void |
setRestructureFlag()
|
void |
setSetRefReprList(BBlock pBBlock,
SetRefReprList pSetRefReprList)
|
void |
setSetRefReprOfIR(SetRefRepr pSetRefRepr,
IR pIR)
|
void |
setUnderComputation(int pItemIndex)
Set computed flag for the item indicated by pItemIndex. |
java.util.List |
sortExpIdCollection(java.util.Collection pExpIdCollection)
Sort the list or set of FLowAnalSyms (pExpIdCollection) so that non-ExpId symbols come first and then ExpIds sorted in the ascending order of suffix (nn of of the name of ExpId _xIdnn). |
java.util.Set |
subtreesContainingCall()
|
void |
summarize()
Compute fDefinedSyms showing symbols used in this subprogram ?? |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース coins.flow.SubpFlow から継承したメソッド |
hasCall |
フィールドの詳細 |
public final FlowRoot flowRoot
public final IoRoot ioRoot
public final SymRoot symRoot
public final HirRoot hirRoot
public Flow flow
protected int fUsedGlobalSymCount
protected int fPointVectorBitCount
protected int fPointVectorWordCount
protected int fExpVectorBitCount
protected int fExpVectorWordCount
protected int fDefVectorBitCount
protected int fDefVectorWordCount
protected int fBBlockVectorBitCount
protected int fBBlockVectorWordCount
protected SubpDefinition fSubpDefinition
protected BBlock fPrevBBlockInSearch
protected int fNodeCount
protected IR[] fFlowIrLink
protected int fFlowIrLinkSize
protected int fBBlockCount
protected int fUsedSymCount
protected int fSymExpCount
protected int fDefRefCount
protected int fDefCount
protected BBlock fEntryBBlock
protected int fAssignCount
protected int fCallCount
protected BBlock fExitBBlock
protected java.util.ArrayList fBBlockTable
protected java.util.List fBBlockList
protected java.util.List fListOfBBlocksFromEntry
protected java.util.List fListOfBBlocksFromExit
protected java.util.Set fUsedSymSet
protected FlowAnalSym[] fSymIndexTable
protected java.util.List fDfoList
protected java.util.List fInverseDfoList
protected int fExpIdNumber
protected java.util.Set fDefinedSyms
protected FlowAnalSym[] fFlowAnalSymTable
protected BBlock[] fBBlockOfIR
protected int[] fDefRefIndex
protected int[] fDefIndex
protected java.util.Map fBBlockOfLabel
protected java.util.List fExpIdList
protected java.util.Set fMaximalCompoundVars
protected java.util.Set fGlobalSymsUsed
protected DefUseList fDefUseList
protected UseDefList fUseDefList
protected DefUseList fDefUseExhaustiveList
protected UseDefList fUseDefExhaustiveList
protected java.util.List[] fDefNodeListOfSym
protected java.util.List[] fUseNodeListOfSym
public boolean fHirAnalExtended
protected SetRefRepr[] fSetRefReprTable
protected int fIrIndexMin
protected int fIrIndexMax
protected ExpId[] fExpIdTable
public int fMaxIndexOfCopiedNode
public java.util.List fSubtreesCopied
protected java.util.Set fSetOfGlobalVariables
protected java.util.Set fSetOfAddressTakenVariables
protected java.util.Map fTempExpCorrespondence
protected AliasAnal fAlias
protected RecordAlias fRecordAlias
protected IR[] fDefRefPoint
protected IR[] fDefPoint
public boolean[] hasCall
public boolean hasCallInSubp
public boolean[] hasUsePointer
public boolean[] hasStructUnion
public boolean[] hasPointerAssign
protected SetRefReprList[] fArrayOfSetRefReprList
protected BBlockVector[] fDom
protected BBlockVector[] fPostDom
protected java.util.List[] fDomList
protected java.util.List[] fPostDomList
public java.util.Set fSubtreesContainingCall
protected int[] fComputedFlag
public final int fDbgLevel
protected int fComplexity
protected final int fNodeCountLim1
protected final int fNodeCountLim2
protected final int fSymCountLim1
protected final int fSymCountLim2
protected FlowAdapter fFlowAdapter
public boolean fIteratorInitiated
public java.util.Map fMultipleSetRef
protected boolean failed
protected SubpFlow fAflowSubpFlow
コンストラクタの詳細 |
public SubpFlowImpl(FlowRoot pFlowRoot, SubpDefinition pSubpDefinition)
public SubpFlowImpl()
メソッドの詳細 |
public BBlock getEntryBBlock()
SubpFlow
の記述:
SubpFlow
内の getEntryBBlock
public void setEntryBBlock(BBlock pBlock)
SubpFlow
内の setEntryBBlock
public BBlock getExitBBlock()
SubpFlow
内の getExitBBlock
public void setExitBBlock(BBlock pBlock)
SubpFlow
内の setExitBBlock
public void copyFlowAnalData(SubpFlow pSubpFlow)
SubpFlow
内の copyFlowAnalData
public BBlock bblock(LabeledStmt pLabeledStmt)
SubpFlow
の記述:
SubpFlow
内の bblock
public BBlock bblock()
SubpFlow
の記述:
SubpFlow
内の bblock
public ExpVector expVector()
SubpFlow
内の expVector
public PointVector pointVector()
SubpFlow
内の pointVector
public DefVector defVector()
SubpFlow
内の defVector
public void resetFlowSymLinkForRecordedSym()
SubpFlow
の記述:
SubpFlow
内の resetFlowSymLinkForRecordedSym
public void resetFlowSymLink(SymTable pSymTable)
SubpFlow
の記述:
SubpFlow
内の resetFlowSymLink
public void resetGlobalFlowSymLink()
SubpFlow
の記述:
SubpFlow
内の resetGlobalFlowSymLink
public void resetFlowSymLinkForTable(SymTable pSymTable)
public BBlock getBBlock(int pBlockNumber)
SubpFlow
の記述:
SubpFlow
内の getBBlock
pBlockNumber
- block number of the basic block to be got.
public void recordBBlock(BBlock pBlock, int pBlockNumber)
SubpFlow
内の recordBBlock
public FlowAnalSym getIndexedSym(int pSymIndex)
SubpFlow
内の getIndexedSym
protected int recordSym(FlowAnalSym pSym)
public IR getIndexedNode(int pNodeIndex)
SubpFlow
内の getIndexedNode
public BBlock getBBlockFromNodeIndex(int pNodeIndex)
SubpFlow
内の getBBlockFromNodeIndex
public int getNumberOfBBlocks()
SubpFlow
内の getNumberOfBBlocks
public int getNumberOfNodes()
SubpFlow
内の getNumberOfNodes
public void setNumberOfNodes(int pCount)
SubpFlow
内の setNumberOfNodes
public int getSymExpCount()
SubpFlow
内の getSymExpCount
public int getUsedSymCount()
SubpFlow
内の getUsedSymCount
public java.lang.String generateExpIdName()
SubpFlow
の記述:
SubpFlow
内の generateExpIdName
public SubpDefinition getSubpDefinition()
SubpFlow
内の getSubpDefinition
public Subp getSubpSym()
SubpFlow
内の getSubpSym
public int getNumberOfDefUsedGlobalSymbols()
SubpFlow
内の getNumberOfDefUsedGlobalSymbols
public int getPointVectorBitCount()
SubpFlow
内の getPointVectorBitCount
public void setPointVectorBitCount(int pBitCount)
SubpFlow
内の setPointVectorBitCount
public int getPointVectorWordCount()
SubpFlow
内の getPointVectorWordCount
public int getExpVectorBitCount()
SubpFlow
内の getExpVectorBitCount
public void setExpVectorBitCount(int pBitCount)
SubpFlow
内の setExpVectorBitCount
public int getExpVectorWordCount()
SubpFlow
内の getExpVectorWordCount
public int getDefVectorBitCount()
SubpFlow
内の getDefVectorBitCount
public void setDefVectorBitCount(int pBitCount)
SubpFlow
内の setDefVectorBitCount
public int getDefVectorWordCount()
SubpFlow
内の getDefVectorWordCount
public int getBBlockVectorBitCount()
SubpFlow
内の getBBlockVectorBitCount
public void setBBlockVectorBitCount(int pBitCount)
SubpFlow
内の setBBlockVectorBitCount
public int getBBlockVectorWordCount()
SubpFlow
内の getBBlockVectorWordCount
public void setPrevBBlockInSearch(BBlock pPrev)
SubpFlow
の記述:
SubpFlow
内の setPrevBBlockInSearch
pPrev
- previous BBlock from which this BBlock is
to be linked.public BBlock getPrevBBlockInSearch()
SubpFlow
内の getPrevBBlockInSearch
public java.util.Set getDefinedSyms()
SubpFlow
の記述:
SubpFlow
内の getDefinedSyms
public java.util.Set getUsedSyms()
SubpFlow
の記述:
SubpFlow
内の getUsedSyms
public void summarize()
SubpFlow
内の summarize
public java.util.Iterator cfgIterator()
SubpFlow
内の cfgIterator
public java.util.Iterator cfgFromExitIterator()
SubpFlow
の記述:
SubpFlow
内の cfgFromExitIterator
public PointVectorIterator pointVectorIterator(PointVector pPointVector)
SubpFlow
内の pointVectorIterator
public DefVectorIterator defVectorIterator(DefVector pDefVector)
SubpFlow
内の defVectorIterator
public ExpVectorIterator expVectorIterator(ExpVector pExpVector)
SubpFlow
内の expVectorIterator
public BBlockSubtreeIterator bblockSubtreeIterator(BBlock pBBlock)
SubpFlow
の記述:
SubpFlow
内の bblockSubtreeIterator
public BBlockStmtIterator bblockStmtIterator(BBlockHir pBBlock)
SubpFlow
の記述:
SubpFlow
内の bblockStmtIterator
public BBlockNodeIterator bblockNodeIterator(BBlock pBBlock)
SubpFlow
内の bblockNodeIterator
public int getFlowAnalStateLevel()
SubpFlow
内の getFlowAnalStateLevel
public void setFlowAnalStateLevel(int pState)
SubpFlow
内の setFlowAnalStateLevel
public java.util.ArrayList getBBlockTable()
SubpFlow
の記述:
SubpFlow
内の getBBlockTable
public java.util.List getBBlockList()
SubpFlow
内の getBBlockList
public java.util.List getReachableBBlocks()
SubpFlow
の記述:
SubpFlow
内の getReachableBBlocks
public void initiateControlFlowAnal(SubpDefinition pSubpDefinition, int pIndexMin, int pIndexMax)
SubpFlow
内の initiateControlFlowAnal
public void initiateDataFlowAnal(SubpDefinition pSubpDefinition)
SubpFlow
の記述:
SubpFlow
内の initiateDataFlowAnal
pSubpDefinition
- definition of subprogram to be analyzed.public BBlock getBBlock(HIR pHir)
SubpFlow
内の getBBlock
public void setBBlock(HIR pHir, BBlock pBBlock)
SubpFlow
内の setBBlock
public BBlock getBBlock0(Label pLabel)
SubpFlow
内の getBBlock0
public BBlock getBBlockForLabel(Label pLabel)
SubpFlow
内の getBBlockForLabel
public void setBBlock(Label pLabel, BBlock pBBlock)
SubpFlow
内の setBBlock
public HIR getLinkedSubtreeOfExpId(ExpId pExpId)
SubpFlow
内の getLinkedSubtreeOfExpId
public DefUseList getDefUseList()
SubpFlow
内の getDefUseList
public DefUseList getListOfDefUseList()
public DefUseList getDefUseExhaustiveList()
SubpFlow
内の getDefUseExhaustiveList
public DefUseList getListOfDefUseExhaustiveList()
public java.util.List getDefNodeList(FlowAnalSym pSym)
SubpFlow
内の getDefNodeList
public void addDefNode(FlowAnalSym pSym, IR pDefNode)
public UseDefList getUseDefList()
SubpFlow
内の getUseDefList
public UseDefList getListOfUseDefList()
public UseDefList getUseDefExhaustiveList()
SubpFlow
内の getUseDefExhaustiveList
public UseDefList getListOfUseDefExhaustiveList()
public java.util.List geUseNodeList(FlowAnalSym pSym)
SubpFlow
内の geUseNodeList
public void addUseNode(FlowAnalSym pSym, IR pUseNode)
public BBlockVector bblockVector()
public FlowAnalSymVector flowAnalSymVector()
SubpFlow
内の flowAnalSymVector
public java.util.Set setOfGlobalVariables()
SubpFlow
内の setOfGlobalVariables
public java.util.Set setOfAddressTakenVariables()
SubpFlow
内の setOfAddressTakenVariables
public void clearControlFlow()
SubpFlow
の記述:
SubpFlow
内の clearControlFlow
public void clearDataFlow()
SubpFlow
の記述:
SubpFlow
内の clearDataFlow
public void resetControlAndDataFlowInformation()
SubpFlow
の記述:
SubpFlow
内の resetControlAndDataFlowInformation
public void resetExpId()
public java.util.Set computeSetOfGlobalVariables()
SubpFlow
内の computeSetOfGlobalVariables
public java.util.Set computeSetOfAddressTakenVariables()
SubpFlow
内の computeSetOfAddressTakenVariables
public void computeSetOfAddressTakenVariables(HIR pHir, java.util.Set pSet, boolean pAddrOperand)
pHir
- HIR subtree to be computed.pSet
- Set in which variables are recorded.pAddrOperand
- true if address is to be taken,
false otherwise.public void setRestructureFlag()
SubpFlow
内の setRestructureFlag
public boolean getRestructureFlag()
SubpFlow
内の getRestructureFlag
public void setRecordAlias(RecordAlias pRecordAlias)
SubpFlow
の記述:
SubpFlow
内の setRecordAlias
pRecordAlias
- is an instance of RecordAlias keeping the
the result of alias analysis for this subprogram.public RecordAlias getRecordAlias()
SubpFlow
の記述:
SubpFlow
内の getRecordAlias
public SetRefRepr getSetRefReprOfIR(IR pIR)
SubpFlow
内の getSetRefReprOfIR
public void setSetRefReprOfIR(SetRefRepr pSetRefRepr, IR pIR)
SubpFlow
内の setSetRefReprOfIR
public void correlateBBlockAndIR()
public void allocateBBlockOfIR()
public BBlock getBBlockOfIR(int pIndex)
SubpFlow
内の getBBlockOfIR
public void setBBlockOfIR(BBlock pBBlock, int pIndex)
public int getIrIndexMin()
SubpFlow
内の getIrIndexMin
public int getIrIndexMax()
SubpFlow
内の getIrIndexMax
public int getDefCount()
SubpFlow
内の getDefCount
public ExpId getExpId(IR pIr)
SubpFlow
内の getExpId
public ExpId getExpId(IR pIr, int pIndex)
SubpFlow
内の getExpId
public void setExpId(IR pIr, ExpId pExpId)
SubpFlow
内の setExpId
public IR getRefPoint(int pIndex)
SubpFlow
内の getRefPoint
pIndex
- ref index (fSubpFlow.fRefIndex[nodeIndex])
public IR getDefPoint(int pIndex)
SubpFlow
内の getDefPoint
pIndex
- def index (fSubpFlow.fDefIndex[nodeIndex])
public int getDefIndex(int pNodeIndex)
SubpFlow
の記述:
SubpFlow
内の getDefIndex
pNodeIndex
- IR node index.
public int recordDefRefPoint(IR pIR)
SubpFlow
内の recordDefRefPoint
public int recordDefPoint(IR pIR)
SubpFlow
内の recordDefPoint
public int getAssignCount()
SubpFlow
内の getAssignCount
public int getCallCount()
SubpFlow
内の getCallCount
public void computeBBlockSetRefReprs()
SubpFlow
内の computeBBlockSetRefReprs
public SetRefReprList getSetRefReprList(BBlock pBBlock)
SubpFlow
内の getSetRefReprList
public void setSetRefReprList(BBlock pBBlock, SetRefReprList pSetRefReprList)
SubpFlow
内の setSetRefReprList
public java.util.Set subtreesContainingCall()
SubpFlow
内の subtreesContainingCall
public void setExpOfTemp(Var pTempVar, Exp pExp)
SubpFlow
の記述:
SubpFlow
内の setExpOfTemp
pTempVar
- variable introduced to represent an expression
(in process of optimization, etc.).pExp
- public Exp getExpOfTemp(Var pTempVar)
SubpFlow
の記述:
SubpFlow
内の getExpOfTemp
pTempVar
- variable introduced to represent an expression
(in process of optimization, etc.).
public java.util.List getListOfBBlocksFromEntry()
SubpFlow
内の getListOfBBlocksFromEntry
public java.util.List getListOfBBlocksFromExit()
SubpFlow
内の getListOfBBlocksFromExit
public FlowRoot getFlowRoot()
SubpFlow
内の getFlowRoot
public boolean isComputed(int pItemIndex)
SubpFlow
の記述:
SubpFlow
内の isComputed
pItemIndex
- item index CF_INDEXED .. DF_DEFUSELIST.
public void setComputedFlag(int pItemIndex)
SubpFlow
の記述:
SubpFlow
内の setComputedFlag
pItemIndex
- item index CF_INDEXED .. DF_DEFUSELIST.public void resetComputedFlag(int pItemIndex)
SubpFlow
の記述:
SubpFlow
内の resetComputedFlag
pItemIndex
- public void setUnderComputation(int pItemIndex)
SubpFlow
の記述:
SubpFlow
内の setUnderComputation
pItemIndex
- public boolean isComputedOrUnderComputation(int pItemIndex)
SubpFlow
内の isComputedOrUnderComputation
void printComputedFlag()
public java.util.List getExpIdList()
SubpFlow
内の getExpIdList
public void printExpIdAndIrCorrespondence()
SubpFlow
内の printExpIdAndIrCorrespondence
public int getComplexityLevel()
SubpFlow
の記述:
SubpFlow
内の getComplexityLevel
public boolean hasCallUnder(IR pIR)
SubpFlow
内の hasCallUnder
public FlowAdapter getFlowAdapter()
SubpFlow
内の getFlowAdapter
public java.util.List changeListOfFlowBBlocksToListOfAflowBBlocks(java.util.List pListOfFlowBBlocks)
SubpFlow
内の changeListOfFlowBBlocksToListOfAflowBBlocks
public java.util.Set getMaximalCompoundVars()
SubpFlow
の記述:
SubpFlow
内の getMaximalCompoundVars
public FlowAnalSym[] getFlowAnalSymTable()
SubpFlow
内の getFlowAnalSymTable
public BBlockVector getDominators(BBlock pBBlock)
SubpFlow
の記述:
SubpFlow
内の getDominators
pBBlock
- Basic block.
public BBlockVector getPostDominators(BBlock pBBlock)
SubpFlow
の記述:
SubpFlow
内の getPostDominators
pBBlock
- Basic block.
public java.util.List getDominatorList(BBlock pBBlock)
SubpFlow
の記述:
SubpFlow
内の getDominatorList
pBBlock
- Basic block.
public java.util.List getPostDominatorList(BBlock pBBlock)
SubpFlow
の記述:
SubpFlow
内の getPostDominatorList
pBBlock
- Basic block.
public SubpFlow getAflowSubpFlow(FlowResults pFlowResults)
public java.util.List sortExpIdCollection(java.util.Collection pExpIdCollection)
SubpFlow
内の sortExpIdCollection
pExpIdCollection
- list or set of FlowAnalSyms.
public boolean isFailed()
SubpFlow
内の isFailed
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |