|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Interface for data flow analysis methods. All the data flow information is available accessing this interface. There are some dependecies between the methods in this interface. For example, findReach() mustn't be called before both findDef() and findKill() have been called, and findKill() in turn depends on the result of findDefined(). Please be careful in using. findAll() method should call those methods in the correct order.
DataFlowImpl
,
SetRefRepr
メソッドの概要 | |
int |
defLookup(int pNodeIndex)
Changes the IR node index into the "Def" index. |
int |
defReverseLookup(int pBitPosition)
Changes the "Def" index into the IR node index. |
int |
expLookup(int pExpIdIndex)
Changes the ExpId index into the position in the ExpVector. |
int |
expReverseLookup(int pBitPosition)
Changes the position in the ExpVector into the ExpId index. |
void |
findAll()
Finds and sets all the data flow information. |
void |
findAllBitVectors()
Finds and sets all the BitVectors, that is, Def, Kill, In, Out, Reach, Defined, Exposed, EGen, EKill, AvailIn, AvailOut, LiveIn, LiveOut, DefIn, and DefOut vectors. |
void |
findAvailInAvailOut()
Finds and sets the AvailIn/AvailOut vector for the entire flow. |
void |
findBasic()
Finds and sets the data flow items that are independent of the control flow, that is, Def, Kill, Defined, Exposed, EGen, and EKill vectors. |
void |
findDef()
Finds and sets the Def vector for the entire flow. |
void |
findDef(BBlock pBBlock)
Finds and sets the Def vector for the given BBlock. |
void |
findDefInDefOut()
Finds and sets the DefIn/DefOut vector for the entire flow. |
void |
findDefined()
Finds and sets the Defined vector for the entire flow. |
void |
findDefined(BBlock pBBlock)
Finds and sets the Defined vector for the given BBlock. |
void |
findDefUse()
Finds and sets the DefUseList for each FlowAnalSym without considering side effects of alias and call. |
void |
findDefUseExhaustively()
Finds and sets the DefUseList for each FlowAnalSym considering side effects of alias and call. |
void |
findEGen()
Finds and sets the EGen vector for the entire flow considering alias. |
void |
findEGen(BBlock pBBlock)
Finds and sets the EGen vector for the given BBlock considering alias. |
void |
findEKill()
Finds and sets the EKill vector for the entire flow. |
void |
findEKill(BBlock pBBlock)
Finds and sets the EKill vector for the given BBlock considering alias. |
void |
findExposed()
Finds and sets the Exposed vector for the entire flow. |
void |
findExposed(BBlock pBBlock)
Finds and sets the Exposed vector for the given BBlock. |
void |
findKill()
Finds and sets the Kill vector for the entire flow. |
void |
findKill(BBlock pBBlock)
Finds and sets the Kill vector for the given BBlock. |
void |
findLiveInLiveOut()
Finds and sets the LiveIn/LiveOut vector for the entire flow. |
void |
findReach()
Finds and sets the Reach vector for the entire flow. |
void |
findUsed()
Finds and sets the Used vector for the entire flow. |
void |
findUsed(BBlock pBBlock)
Finds and sets the Used vector for the given BBlock. |
void |
findUseDef()
Finds and sets the UseDefList for each FlowAnalSym considering alias and call. |
void |
findUseDefExhaustively()
Finds and sets the UseDefList for each FlowAnalSym without considering side effects of alias and call. |
java.util.List |
getBBlockList()
Returns the List of BBlocks in this flow. |
int |
getDefCount()
Returns the # of value-setting SetRefReprs. |
int |
getDefIndex(int pIRIndex)
Returns the DefSetRefRepr index (SetRefRepr no. that is assigned to value-setting SetRefReprs) of the node that has the given IR index. |
int |
getDefNodeIndex(int pDefSetRefReprNo)
Returns the node index corresponding to the given "DefSetRefReprNo", which is the index attached to every value-setting SetRefRepr. |
FlowAnalSym |
getFlowAnalSym(int pFlowAnalSymIndex)
Returns the ExpId that has the given index. |
int |
getFlowAnalSymCount()
Returns the # of ExpIds generated in this flow. |
IR |
getNode(int pNodeIndex)
Returns the node that has the given index. |
IR |
getNodeFromDefIndex(int pDefIndex)
Returns the IR node that corresponds to the given DefSetRefRepr index (entry of the DefVector). |
int |
getPointCount()
Returns the # of "Points" in this flow. |
java.util.Set |
getUndefinedUseNodeOfSym(FlowAnalSym lSym)
|
java.util.Set |
getUseFlowAnalSyms(IR pSubtree)
Returns the Set of ExpIds that fall under the given subtree and are used. |
java.util.Set |
getUseFlowAnalSymsForHir(HIR pSubtree)
|
void |
showAll()
Shows all the information found in this analysis. |
void |
showAllBitVectors()
Shows all the BitVectors. |
void |
showAvailIn()
Shows the AvailIn vector for every BBlock. |
void |
showAvailInAvailOutRelated()
Shows BitVectors related to (needed to solve) AvailIn/AvailOut vectors, that is, EGen, EKill, AvailIn, and AvailOut vectors. |
void |
showAvailOut()
Shows the AvailOut vector for every BBlock. |
void |
showBasic()
Shows all the data flow items that are independent of the control flow, that is, Def, Kill, Defined, Exposed, EGen, and EKill vectors. |
void |
showDef()
Shows the Def vector for every BBlock. |
void |
showDefIn()
Shows the DefIn vector for every BBlock. |
void |
showDefInDefOutRelated()
Shows BitVectors related to (needed to solve) DefIn/DefOut vectors, that is, Defined, DefIn, and DefOut vectors. |
void |
showDefined()
Shows the Defined vector for every BBlock. |
void |
showDefOut()
Shows the DefOut vector for every BBlock. |
void |
showDefUse()
Shows the DefUseList for each FlowAnalSym. |
void |
showDefVectors()
Shows all the DefVectors for every BBlock. |
void |
showEGen()
Shows the EGen vector for every BBlock. |
void |
showEKill()
Shows the EKill vector for every BBlock. |
void |
showExposed()
Shows the Exposed vector for every BBlock. |
void |
showExpVectors()
Shows all the ExpVectors for every BBlock. |
void |
showKill()
Shows the Kill vector for every BBlock. |
void |
showLiveIn()
Shows the LiveIn vector for every BBlock. |
void |
showLiveInLiveOutRelated()
Shows BitVectors related to (needed to solve) LiveIn/LiveOut vectors, that is, Exposed, Defined, LiveIn, and LiveOut vectors. |
void |
showLiveOut()
Shows the LiveOut vector for every BBlock. |
void |
showReach()
Shows the Reach the vector for every BBlock. |
void |
showReachRelated()
Shows BitVectors related to (needed to solve) Reach vectors, that is, Def, Kill, and Reach vectors. |
void |
showSolved()
Shows all the data flow items data flow equations have found, that is, In, Out, Reach, AvailIn, AvailOut, LiveIn, LiveOut, DefIn, and DefOut vectors. |
void |
showSummary()
Show summary of data flow information. |
void |
showUseDef()
Shows the UseDefList for each FlowAnalSym. |
void |
solveAll()
Solves all the data flow equations to find In, Out, Reach, AvailIn, AvailOut, LiveIn, LiveOut, DefIn, and DefOut vectors. |
メソッドの詳細 |
public void findDef()
public void findDef(BBlock pBBlock)
pBBlock
- BBlock whose Def vector to find.public void findKill()
public void findKill(BBlock pBBlock)
pBBlock
- BBlock whose Kill vector to find.public void findDefined()
public void findDefined(BBlock pBBlock)
pBBlock
- BBlock whose Defined vector to find.public void findUsed()
public void findUsed(BBlock pBBlock)
pBBlock
- BBlock whose Used vector to find.public void findExposed()
public void findExposed(BBlock pBBlock)
pBBlock
- BBlock whose Exposed vector to find.public void findEGen()
public void findEGen(BBlock pBBlock)
pBBlock
- BBlock whose EGen vector to find.public void findEKill()
public void findEKill(BBlock pBBlock)
pBBlock
- BBlock whose EKill vector to find.public void findReach()
public void findAvailInAvailOut()
public void findLiveInLiveOut()
public void findDefInDefOut()
public void findBasic()
findDef()
,
findDefined()
,
findKill()
,
findExposed()
,
findEGen()
,
findEKill()
public void solveAll()
findReach()
,
findAvailInAvailOut()
,
findLiveInLiveOut()
,
findDefInDefOut()
public void findAllBitVectors()
findBasic()
,
solveAll()
public void findDefUse()
public void findDefUseExhaustively()
public void findUseDef()
public void findUseDefExhaustively()
public void findAll()
findAllBitVectors()
,
findDefUse()
public int getDefCount()
public int getFlowAnalSymCount()
public int getPointCount()
public int getDefIndex(int pIRIndex)
public IR getNodeFromDefIndex(int pDefIndex)
public java.util.List getBBlockList()
public java.util.Set getUseFlowAnalSyms(IR pSubtree)
pSubtree
- IR node that is the root of the subtree to examine.
public java.util.Set getUseFlowAnalSymsForHir(HIR pSubtree)
public FlowAnalSym getFlowAnalSym(int pFlowAnalSymIndex)
public int expReverseLookup(int pBitPosition)
pBitPosition
- position in the ExpVector.public int defLookup(int pNodeIndex)
pNodeIndex
- index of the value-setting node (AssignStmt in HIR).public int defReverseLookup(int pBitPosition)
pBitPosition
- index in the DefVector for which to find the node index.public int expLookup(int pExpIdIndex)
pExpIdIndex
- index of ExpId.public int getDefNodeIndex(int pDefSetRefReprNo)
pDefSetRefReprNo
- index of value-setting SetRefRepr.
public IR getNode(int pNodeIndex)
pNodeIndex
- index of the node to be gotten.
public void showDef()
public void showKill()
public void showReach()
public void showDefined()
public void showExposed()
public void showEGen()
public void showEKill()
public void showAvailIn()
public void showAvailOut()
public void showLiveIn()
public void showLiveOut()
public void showDefIn()
public void showDefOut()
public void showDefVectors()
showDef()
,
//@see #showIn()
//@see #showOut()
,
showReach()
public void showExpVectors()
showDefined()
,
showExposed()
,
showEGen()
,
showEKill()
,
showAvailIn()
,
showAvailOut()
,
showLiveIn()
,
showLiveOut()
,
showDefIn()
,
showDefOut()
public void showBasic()
showDef()
,
showKill()
,
showDefined()
,
showExposed()
,
showEGen()
,
showEKill()
public void showSolved()
showReach()
,
showAvailIn()
,
showAvailOut()
,
showLiveIn()
,
showLiveOut()
,
showDefIn()
,
showDefOut()
public void showReachRelated()
showDef()
,
showKill()
,
showReach()
public void showAvailInAvailOutRelated()
showEGen()
,
showEKill()
,
showAvailIn()
,
showAvailOut()
public void showLiveInLiveOutRelated()
showExposed()
,
showDefined()
,
showLiveIn()
,
showLiveOut()
public void showDefInDefOutRelated()
showDefined()
,
showDefIn()
,
showDefOut()
public void showAllBitVectors()
showDefVectors()
,
showExpVectors()
public void showDefUse()
public void showUseDef()
public void showAll()
showAllBitVectors()
,
showDefUse()
public void showSummary()
public java.util.Set getUndefinedUseNodeOfSym(FlowAnalSym lSym)
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |