|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
SubpFlow interface: Interface for subprogram flow analysis.
メソッドの概要 | |
void |
allocateExpIdTable()
|
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. |
BBlockSubtreeIterator |
bblockSubtreeIterator(BBlock pBBlock)
bblockSubtreeItrator Get iterator that traverse top subtrees of the basic block pBBlock. |
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 from the entry BBlock. |
void |
clear()
Clear flow analysis information by resetting fIrIndexMin = 0, fIrIndexMax = 0, fSetOfGlobalSymbols, fSetOfAddressTakenSymbols. |
java.util.Set |
computeSetOfAddressTakenVariables()
|
java.util.Set |
computeSetOfGlobalVariables()
|
java.util.List |
controlFlowAnal()
Performs the control flow analysis of this SubpFlow and makes a list of BBlocks. |
void |
correlateBBlockAndIR()
correlateBBlockAndIR: Correlate BBlock and IR so that getBBlockOfIR(hir.getIndex()) become effective. |
DefVector |
defVector()
|
ExpVector |
expVector()
|
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 |
findDefUse()
Finds the DefUseList s for all the FlowAnalSym s 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 |
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 UDList s for all the FlowAnalSym s 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 pSym)
Returns the DefUseList for the given FlowAnalSym in this SubpFlow. |
BBlock |
getEntryBBlock()
|
BBlock |
getExitBBlock()
|
FlowExpId |
getExpId(IR pIr)
|
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 pSym)
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()
|
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 pSym,
DefUseList pList)
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 pSym,
UDList pList)
Sets the UDList for the given FlowAnalSym in this SubpFlow. |
メソッドの詳細 |
public BBlock getEntryBBlock()
public BBlock getExitBBlock()
public void setEntryBBlock(BBlock pBlock)
public void setExitBBlock(BBlock pBBlock)
public BBlock bblock(LabeledStmt pLabeledStmt)
public BBlockVector bblockVector()
public ExpVector expVector()
public PointVector pointVector()
public DefVector defVector()
public FlowAnalSymVector flowAnalSymVector()
public BBlock getBBlock(int pBlockNumber)
public void recordBBlock(BBlock pBlock)
public int getNumberOfBBlocks()
public SubpDefinition getSubpDefinition()
public Subp getSubpSym()
public java.util.Iterator cfgIterator()
public java.util.Iterator cfgFromExitIterator()
public java.util.Iterator cfgBfoIterator()
public BBlockSubtreeIterator bblockSubtreeIterator(BBlock pBBlock)
public FAList getBBlockTable()
public java.util.List getBBlocks()
public void setBBlocks(java.util.List pBBlocks)
public java.util.List getReachableBBlocks()
public void setReachableBBlocks(java.util.List pBBlocks)
public java.util.List getBBlocksFromEntry()
public java.util.List getBBlocksFromExit()
public int getNumberOfRelevantBBlocks()
public FAList getFlowExpIdTable()
public void setFlowExpIdTable(FAList pFlowExpIdTable)
public FlowResults results()
public AssignFlowExpId assigner()
public FAList getSetRefReprs()
public void setSetRefReprs(FAList pSetReprs)
public java.util.List controlFlowAnal()
public DefUseList getDefUseList(FlowAnalSym pSym)
public void setDefUseList(FlowAnalSym pSym, DefUseList pList)
public UDList getUDList(FlowAnalSym pSym)
public void setUDList(FlowAnalSym pSym, UDList pList)
public FAList getSymIndexTable()
public void setSymIndexTable(FAList pSymIndexTable)
public void makeDominatorTree()
public void makePostdominatorTree()
public void initiateDataFlow()
public void findPDef()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDDefined()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findPDefined()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDKill()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findPKill()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDExposedUsed()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findPExposedUsed()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDEGen()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findPEKill()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDReach()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findPReach()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDAvailInAvailOut()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findPLiveInLiveOut()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDDefInDefOut()
BBlocks
contained in this SubpFlow. The control flow graph must already be created.
public void findDefUse()
DefUseList
s for all the FlowAnalSym
s that appear in this SubpFlow. The control flow graph must already be created.
public void findUseDef()
UDList
s for all the FlowAnalSym
s that appear in this SubpFlow. The control flow graph must already be created.
public SetRefRepr getSetRefReprOfIR(int pIndex)
public void setSetRefReprOfIR(SetRefRepr pSetRefRepr, int pIndex)
public BBlock getBBlockOfIR(int pIndex)
public void setBBlockOfIR(BBlock pBBlock, int pIndex)
public void correlateBBlockAndIR()
public int getIrIndexMin()
public int getIrIndexMax()
public void allocateExpIdTable()
public FlowExpId getExpId(IR pIr)
public void setExpId(IR pIr, FlowExpId pFlowExpId)
public void printExpIdTable()
public void clear()
public java.util.Set computeSetOfGlobalVariables()
public java.util.Set computeSetOfAddressTakenVariables()
public java.util.Set setOfGlobalVariables()
public java.util.Set setOfAddressTakenVariables()
public void setRestructureFlag()
public boolean getRestructureFlag()
public void setRecordAlias(RecordAlias pRecordAlias)
pRecordAlias
- is an instance of RecordAlias keeping the
the result of alias analysis for this subprogram.public RecordAlias getRecordAlias()
public void setExpOfTemp(Var pTempVar, Exp pExp)
pTempVar
- variable introduced to represent an expression
(in process of optimization, etc.).pExp
- public Exp getExpOfTemp(Var pTempVar)
pTempVar
- variable introduced to represent an expression
(in process of optimization, etc.).
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |