coins.flow
クラス MySubpFlow

java.lang.Object
  |
  +--coins.flow.SubpFlowImpl
        |
        +--coins.flow.HirSubpFlowImpl
              |
              +--coins.flow.MySubpFlow
すべての実装インタフェース:
HirSubpFlow, SubpFlow

public class MySubpFlow
extends HirSubpFlowImpl
implements HirSubpFlow

MySubpFlow is an example of extending data flow analysis by making subclass of HirSugpFlow. This class adds new data flow information which can be get by getTransparent(bblock). The method computeTransparent() of this calss is called from FlowImpl if hirAnal option is specified.


フィールドの概要
(パッケージプライベート)  ExpVector[] fTransparent
           
 
クラス coins.flow.HirSubpFlowImpl から継承したフィールド
EXP_ID_HASH_SIZE, fStmtExpCount, fStmtExpSeq, fStmtExpSeqIndexForBBlock
 
クラス coins.flow.SubpFlowImpl から継承したフィールド
fAflowSubpFlow, failed, fAlias, fArrayOfSetRefReprList, fAssignCount, fBBlockCount, fBBlockList, fBBlockOfIR, fBBlockOfLabel, fBBlockTable, fBBlockVectorBitCount, fBBlockVectorWordCount, fCallCount, fComplexity, fComputedFlag, fDbgLevel, fDefCount, fDefIndex, fDefinedSyms, fDefNodeListOfSym, fDefPoint, fDefRefCount, fDefRefIndex, fDefRefPoint, fDefUseExhaustiveList, fDefUseList, fDefVectorBitCount, fDefVectorWordCount, fDfoList, fDom, fDomList, fEntryBBlock, fExitBBlock, fExpIdList, fExpIdNumber, fExpIdTable, fExpVectorBitCount, fExpVectorWordCount, fFlowAdapter, fFlowAnalSymTable, fFlowIrLink, fFlowIrLinkSize, fGlobalSymsUsed, fHirAnalExtended, fInverseDfoList, fIrIndexMax, fIrIndexMin, fIteratorInitiated, fListOfBBlocksFromEntry, fListOfBBlocksFromExit, flow, flowRoot, fMaximalCompoundVars, fMaxIndexOfCopiedNode, fMultipleSetRef, fNodeCount, fNodeCountLim1, fNodeCountLim2, fPointVectorBitCount, fPointVectorWordCount, fPostDom, fPostDomList, fPrevBBlockInSearch, fRecordAlias, fSetOfAddressTakenVariables, fSetOfGlobalVariables, fSetRefReprTable, fSubpDefinition, fSubtreesContainingCall, fSubtreesCopied, fSymCountLim1, fSymCountLim2, fSymExpCount, fSymIndexTable, fTempExpCorrespondence, fUseDefExhaustiveList, fUseDefList, fUsedGlobalSymCount, fUsedSymCount, fUsedSymSet, fUseNodeListOfSym, hasCall, hasCallInSubp, hasPointerAssign, hasStructUnion, hasUsePointer, hirRoot, ioRoot, symRoot
 
インタフェース 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
 
コンストラクタの概要
MySubpFlow(FlowRoot pFlowRoot, SubpDefinition pSubpDefinition)
           
 
メソッドの概要
 void computeTransparent()
          The method computeTransparent finds tranparent expressions that are neither killed nore defined within a basic block.
 ExpVector getTransparent(BBlock pBBlock)
          Get the transparent expression for the basic block pBBlock.
 
クラス coins.flow.HirSubpFlowImpl から継承したメソッド
allocateExpIdForSubp, allocateExpIdToNode, computeBBlockSetRefReprs, computeHashCodeOfNode, divideHirIntoBasicBlocks, divideLirIntoBasicBlocks, getFlowIrLink, getHashCodeOfIndexedNode, hasCall, isSameTree, recordSetRefReprs, recordSetRefReprs, recordSetRefReprsForNode, selectExpId, setHashCodeOfIndexedNode
 
クラス coins.flow.SubpFlowImpl から継承したメソッド
addDefNode, addUseNode, allocateBBlockOfIR, bblock, bblock, bblockNodeIterator, bblockStmtIterator, bblockSubtreeIterator, bblockVector, cfgFromExitIterator, cfgIterator, changeListOfFlowBBlocksToListOfAflowBBlocks, clearControlFlow, clearDataFlow, computeSetOfAddressTakenVariables, computeSetOfAddressTakenVariables, computeSetOfGlobalVariables, copyFlowAnalData, correlateBBlockAndIR, defVector, defVectorIterator, expVector, expVectorIterator, flowAnalSymVector, generateExpIdName, getAflowSubpFlow, getAssignCount, getBBlock, getBBlock, getBBlock0, getBBlockForLabel, getBBlockFromNodeIndex, getBBlockList, getBBlockOfIR, getBBlockTable, getBBlockVectorBitCount, getBBlockVectorWordCount, getCallCount, getComplexityLevel, getDefCount, getDefIndex, getDefinedSyms, getDefNodeList, getDefPoint, getDefUseExhaustiveList, getDefUseList, getDefVectorBitCount, getDefVectorWordCount, getDominatorList, getDominators, getEntryBBlock, getExitBBlock, getExpId, getExpId, getExpIdList, getExpOfTemp, getExpVectorBitCount, getExpVectorWordCount, getFlowAdapter, getFlowAnalStateLevel, getFlowAnalSymTable, getFlowRoot, getIndexedNode, getIndexedSym, getIrIndexMax, getIrIndexMin, getLinkedSubtreeOfExpId, getListOfBBlocksFromEntry, getListOfBBlocksFromExit, getListOfDefUseExhaustiveList, getListOfDefUseList, getListOfUseDefExhaustiveList, getListOfUseDefList, getMaximalCompoundVars, getNumberOfBBlocks, getNumberOfDefUsedGlobalSymbols, getNumberOfNodes, getPointVectorBitCount, getPointVectorWordCount, getPostDominatorList, getPostDominators, getPrevBBlockInSearch, getReachableBBlocks, getRecordAlias, getRefPoint, getRestructureFlag, getSetRefReprList, getSetRefReprOfIR, getSubpDefinition, getSubpSym, getSymExpCount, getUseDefExhaustiveList, getUseDefList, getUsedSymCount, getUsedSyms, geUseNodeList, hasCallUnder, initiateControlFlowAnal, initiateDataFlowAnal, isComputed, isComputedOrUnderComputation, isFailed, pointVector, pointVectorIterator, printComputedFlag, printExpIdAndIrCorrespondence, recordBBlock, recordDefPoint, recordDefRefPoint, recordSym, resetComputedFlag, resetControlAndDataFlowInformation, resetExpId, resetFlowSymLink, resetFlowSymLinkForRecordedSym, resetFlowSymLinkForTable, resetGlobalFlowSymLink, setBBlock, setBBlock, setBBlockOfIR, setBBlockVectorBitCount, setComputedFlag, setDefVectorBitCount, setEntryBBlock, setExitBBlock, setExpId, setExpOfTemp, setExpVectorBitCount, setFlowAnalStateLevel, setNumberOfNodes, setOfAddressTakenVariables, setOfGlobalVariables, setPointVectorBitCount, setPrevBBlockInSearch, setRecordAlias, setRestructureFlag, setSetRefReprList, setSetRefReprOfIR, setUnderComputation, sortExpIdCollection, subtreesContainingCall, summarize
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース coins.flow.HirSubpFlow から継承したメソッド
allocateExpIdForSubp, divideHirIntoBasicBlocks, divideLirIntoBasicBlocks
 
インタフェース coins.flow.SubpFlow から継承したメソッド
bblock, bblock, bblockNodeIterator, bblockStmtIterator, bblockSubtreeIterator, cfgFromExitIterator, cfgIterator, changeListOfFlowBBlocksToListOfAflowBBlocks, clearControlFlow, clearDataFlow, computeBBlockSetRefReprs, computeSetOfAddressTakenVariables, computeSetOfGlobalVariables, copyFlowAnalData, defVector, defVectorIterator, expVector, expVectorIterator, flowAnalSymVector, generateExpIdName, getAssignCount, getBBlock, getBBlock, getBBlock0, getBBlockForLabel, getBBlockFromNodeIndex, getBBlockList, getBBlockOfIR, getBBlockTable, getBBlockVectorBitCount, getBBlockVectorWordCount, getCallCount, getComplexityLevel, getDefCount, getDefIndex, getDefinedSyms, getDefNodeList, getDefPoint, getDefUseExhaustiveList, getDefUseList, getDefVectorBitCount, getDefVectorWordCount, getDominatorList, getDominators, getEntryBBlock, getExitBBlock, getExpId, getExpId, getExpIdList, getExpOfTemp, getExpVectorBitCount, getExpVectorWordCount, getFlowAdapter, getFlowAnalStateLevel, getFlowAnalSymTable, getFlowRoot, getIndexedNode, getIndexedSym, getIrIndexMax, getIrIndexMin, getLinkedSubtreeOfExpId, getListOfBBlocksFromEntry, getListOfBBlocksFromExit, getMaximalCompoundVars, getNumberOfBBlocks, getNumberOfDefUsedGlobalSymbols, getNumberOfNodes, getPointVectorBitCount, getPointVectorWordCount, getPostDominatorList, getPostDominators, getPrevBBlockInSearch, getReachableBBlocks, getRecordAlias, getRefPoint, getRestructureFlag, getSetRefReprList, getSetRefReprOfIR, getSubpDefinition, getSubpSym, getSymExpCount, getUseDefExhaustiveList, getUseDefList, getUsedSymCount, getUsedSyms, geUseNodeList, hasCall, hasCallUnder, initiateControlFlowAnal, initiateDataFlowAnal, isComputed, isComputedOrUnderComputation, isFailed, pointVector, pointVectorIterator, printExpIdAndIrCorrespondence, recordBBlock, recordDefPoint, recordDefRefPoint, resetComputedFlag, resetControlAndDataFlowInformation, resetFlowSymLink, resetFlowSymLinkForRecordedSym, resetGlobalFlowSymLink, setBBlock, setBBlock, setBBlockVectorBitCount, setComputedFlag, setDefVectorBitCount, setEntryBBlock, setExitBBlock, setExpId, setExpOfTemp, setExpVectorBitCount, setFlowAnalStateLevel, setNumberOfNodes, setOfAddressTakenVariables, setOfGlobalVariables, setPointVectorBitCount, setPrevBBlockInSearch, setRecordAlias, setRestructureFlag, setSetRefReprList, setSetRefReprOfIR, setUnderComputation, sortExpIdCollection, subtreesContainingCall, summarize
 

フィールドの詳細

fTransparent

ExpVector[] fTransparent
コンストラクタの詳細

MySubpFlow

public MySubpFlow(FlowRoot pFlowRoot,
                  SubpDefinition pSubpDefinition)
メソッドの詳細

computeTransparent

public void computeTransparent()
The method computeTransparent finds tranparent expressions that are neither killed nore defined within a basic block.


getTransparent

public ExpVector getTransparent(BBlock pBBlock)
Get the transparent expression for the basic block pBBlock. Expressions are represented by ExpId correnponding to the expression.

パラメータ:
pBBlock - basic block.
戻り値:
extression vector showing transparent expressions.