coins.flow
インタフェース HirSubpFlow

すべてのスーパーインタフェース:
SubpFlow
既知の実装クラスの一覧:
HirSubpFlowImpl, MySubpFlow

public interface HirSubpFlow
extends SubpFlow

HirSubpFlow interface HIR subprogram flow analysis interface.


フィールドの概要
 
インタフェース 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
 
メソッドの概要
 void allocateExpIdForSubp()
          allocateExpIdForSubp For each HIR node of current subprogram, allocate ExpId to the node if it does computation directly, and record DefRefPosition number for the node.
 boolean divideHirIntoBasicBlocks()
          divideHirIntoBasicBlocks Divide the current subprogram into basic block, create BBlock and make link to HIR node, after resetting FlowSymLink, reset LabelLink, setting index to each node, recording the symbols actually used in the current subprogram setting index to the symbols and .
 void 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
 

メソッドの詳細

divideHirIntoBasicBlocks

public boolean divideHirIntoBasicBlocks()
divideHirIntoBasicBlocks Divide the current subprogram into basic block, create BBlock and make link to HIR node, after resetting FlowSymLink, reset LabelLink, setting index to each node, recording the symbols actually used in the current subprogram setting index to the symbols and . making label reference list for labels that are explicitly refered as jump target in JumpStmt and SwitchStmt (IfStmt, LoopStmt implicitly refer labels but they are not listed), create FlowIrLinkCell,

戻り値:
false if failed (by bad node index), otherwise return true. //##78

divideLirIntoBasicBlocks

public void divideLirIntoBasicBlocks()

allocateExpIdForSubp

public void allocateExpIdForSubp()
allocateExpIdForSubp For each HIR node of current subprogram, allocate ExpId to the node if it does computation directly, and record DefRefPosition number for the node. If two subtrees have statically the same form and type, then they are allocated the same ExpId.