coins.sym
クラス ExpIdImpl

java.lang.Object
  |
  +--coins.sym.SymImpl
        |
        +--coins.sym.ExpIdImpl
すべての実装インタフェース:
java.lang.Cloneable, ExpId, FlowAnalSym, HasStringObject, Sym, Sym0

public class ExpIdImpl
extends SymImpl
implements ExpId

ExpIdImpl


フィールドの概要
protected  HIR fCopiedExp
           
protected  IrList fDefList
          Definition list containing IR nodes that define the value of this symbol.
protected  ExpInf fExpInf
           
protected  FlowExpId fFlowExpId
          FlowExpId corresponding to this ExpId.
protected  ExpId fHashChain
           
protected  int fIdNumber
           
protected  int fIndex
           
protected  IR fLinkedNode
           
protected  java.util.Set fOperandSet
           
protected  IrList fUseList
          Use list containing IR nodes that use (refer) this symbol.
 
クラス coins.sym.SymImpl から継承したフィールド
fDbgLevel, fDefinedIn, fFlagBox, fKind, fName, fNextSym, fRecordedIn, fSourceInf, fSymInf, fType, fUniqueNameSym, fWork, machineParam, sourceLanguage, symRoot
 
インタフェース coins.sym.Sym から継承したフィールド
KIND_NAME, VISIBILITY
 
インタフェース coins.sym.Sym0 から継承したフィールド
FLAG_ADDRESS_TAKEN, FLAG_CASTLESS_SUBP, FLAG_COMMON, FLAG_COMPLEX_STRUCT, FLAG_DERIVED_SYM, FLAG_GENERATED_SYM, FLAG_INCOMPLETE_TYPE, FLAG_POINTER_OPERATION, FLAG_REGION_ELEM, FLAG_RESERVED_NAME, FLAG_SIZEOF_TAKEN, FLAG_UNFIXED_SIZE, FLAG_UNIFORM_SIZE, FLAG_VALUE_IS_ASSIGNED, KIND_AREG, KIND_BOOL_CONST, KIND_CHAR_CONST, KIND_CONST_FIRST, KIND_CONST_LAST, KIND_ELEM, KIND_EXP_ID, KIND_FLOAT_CONST, KIND_INT_CONST, KIND_LABEL, KIND_MREG, KIND_NAMED_CONST, KIND_OTHER, KIND_PARAM, KIND_REMOVED, KIND_STRING_CONST, KIND_SUBP, KIND_TAG, KIND_TYPE, KIND_VAR, SYM_COMPILE_UNIT, SYM_EXTERN, SYM_PRIVATE, SYM_PROTECTED, SYM_PUBLIC
 
コンストラクタの概要
ExpIdImpl(SymRoot pSymRoot, java.lang.String pExpIdName, Sym pDefinedIn)
           
 
メソッドの概要
 void addOperand(FlowAnalSym pOperand)
           
 HIR getCopiedExp()
          getCopiedExp Get the expression for which this ExpId is first created.
 ExpInf getExpInf()
           
 FlowExpId getFlowExpId()
          getFlowExpId Get the FlowExpId that is used in aflow.
 int getIndex()
          getIndex Get the index number assigned to the symbol.
 IR getLinkedNode()
          getLinkedNode Get the IR node for which this ExpId is first created.
 Sym getLinkedSym()
          getLinkedSym If the linked node of this ExpId has symbol connected to it, then return it, else return null.
 ExpId getNextId()
          getNextId Get the next ExpId in the hash chain.
 int getNumberOfOperations()
          Returns the number of operations this FlowExpId involves.
 java.util.Set getOperandSet()
          Returns the set of FlowAnalSyms that are operands of this FlowExpId.
 java.util.Set getOperandSet0()
          Returns the set of FlowAnalSyms that are operands of this FlowExpId, and that hold the value that may contribute to the result of the computation of this FlowExpId.
 SetRefRepr getSetRefRepr()
           Get SetRefRepr information that is used in data flow analysis for the expression corresponding to this ExpId.
 boolean isLHS()
           
 void resetFlowAnalInf()
          resetFlowAnalInf Reset information for flow analysis, that is, nullify DefUseList, definition list, use list, ExpId, and reset the index value to 0.
 void setExpInf(ExpInf pExpInf)
           
 void setFlowExpId(FlowExpId pFlowExpId)
          setFlowExpId Set the FlowExpId that is used in aflow.
 void setIndex(int pIndex)
          setIndex Set the index number assigned to the symbol.
 void setNextId(ExpId pNextId)
          setNextId Set the next ExpId in the hash chain.
 void setSetRefRepr(SetRefRepr pSetRefRepr)
           Set SetRefRepr information that is used in data flow analysis for the expression corresponding to this ExpId.
 java.lang.String toString()
          Get the string image of object.
 java.lang.String toStringDetail()
          toStringDetail Get detailed attributes of this symbol in text which is not interned.
 
クラス coins.sym.SymImpl から継承したメソッド
bareStringConst, baseType, boolConst, charConst, charConst, charConst, definedType, definedType, defineElem, defineLabel, defineParam, defineRegionVar, defineSubp, defineVar, defineVar, derivedSym, enumType, enumType, floatConst, floatConst, getDefinedColumn, getDefinedFile, getDefinedIn, getDefinedInName, getDefinedLine, getFlag, getInf, getName, getNameOrNull, getNextSym, getOrAddInf, getOriginalSym, getOriginalSym, getPureName, getRecordedIn, getSourceInf, getSymKind, getSymKindName, getSymType, getUniqueName, getWork, intConst, intConst, intObject, isGlobal, isHIR, isRemoved, isSym, linkSym, makeCstring, makeCstringWithTrailing0, makeEnumTypeName, makeExpString, makeJavaString, makeStructUnionTypeName, makeSubpTypeName, makeSubpTypeName, makeVectorTypeName, makeVectorTypeName, makeVectorTypeName, namedConst, namedConst, pointerType, pointerType, pointerType, pointerType, pointerType, print, print, regionType, regionType, remove, setDefinedFile, setDefinedIn, setDefinedLine, setFlag, setOriginalSym, setParameters, setRecordedIn, setSourceInf, setSymKind, setSymType, setUniqueNameSym, setWork, stringConst, stringConstFromQuotedString, structType, structType, subpType, subpType, symbol, toStringShort, unionType, unionType, vectorType, vectorType, vectorType, vectorType, vectorTypeUnfixed, vectorTypeUnfixed
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース coins.sym.Sym から継承したメソッド
baseType, boolConst, charConst, defineVar, derivedSym, floatConst, getDefinedColumn, getDefinedInName, getDefinedLine, getInf, getNameOrNull, getOrAddInf, getOriginalSym, getOriginalSym, getPureName, getSymKindName, getWork, intConst, intObject, isRemoved, makeCstring, makeCstringWithTrailing0, makeEnumTypeName, makeJavaString, makeStructUnionTypeName, makeSubpTypeName, makeVectorTypeName, makeVectorTypeName, makeVectorTypeName, namedConst, pointerType, pointerType, pointerType, regionType, remove, setDefinedFile, setDefinedIn, setDefinedLine, setRecordedIn, setSymKind, setSymType, setUniqueNameSym, setWork, stringConstFromQuotedString, symbol, toStringShort, vectorType, vectorType, vectorType, vectorTypeUnfixed
 
インタフェース coins.sym.Sym0 から継承したメソッド
charConst, definedType, defineElem, defineLabel, defineParam, defineSubp, defineVar, enumType, floatConst, getDefinedFile, getDefinedIn, getFlag, getName, getNextSym, getRecordedIn, getSymKind, getSymType, getUniqueName, intConst, isGlobal, namedConst, pointerType, setFlag, stringConst, structType, subpType, unionType, vectorType, vectorTypeUnfixed
 

フィールドの詳細

fHashChain

protected ExpId fHashChain

fIdNumber

protected int fIdNumber

fLinkedNode

protected IR fLinkedNode

fCopiedExp

protected HIR fCopiedExp

fExpInf

protected ExpInf fExpInf

fFlowExpId

protected FlowExpId fFlowExpId
FlowExpId corresponding to this ExpId.


fDefList

protected IrList fDefList
Definition list containing IR nodes that define the value of this symbol.


fUseList

protected IrList fUseList
Use list containing IR nodes that use (refer) this symbol.


fIndex

protected int fIndex

fOperandSet

protected java.util.Set fOperandSet
コンストラクタの詳細

ExpIdImpl

public ExpIdImpl(SymRoot pSymRoot,
                 java.lang.String pExpIdName,
                 Sym pDefinedIn)
メソッドの詳細

getLinkedNode

public IR getLinkedNode()
インタフェース ExpId の記述:
getLinkedNode Get the IR node for which this ExpId is first created. It may be affected by some optimization after the ExpId assignment. There may be other IR nodes with the same subtree structure as the it.

定義:
インタフェース ExpId 内の getLinkedNode
戻り値:
the IR node corresponding to this ExpId.

getCopiedExp

public HIR getCopiedExp()
インタフェース ExpId の記述:
getCopiedExp Get the expression for which this ExpId is first created. It is not affected by optimization after the ExpId assignment.

定義:
インタフェース ExpId 内の getCopiedExp
戻り値:
the IR node corresponding to this ExpId.

getLinkedSym

public Sym getLinkedSym()
インタフェース ExpId の記述:
getLinkedSym If the linked node of this ExpId has symbol connected to it, then return it, else return null.

定義:
インタフェース ExpId 内の getLinkedSym
戻り値:
the corresponding symbol or return null.

getNextId

public ExpId getNextId()
インタフェース ExpId の記述:
getNextId Get the next ExpId in the hash chain.

定義:
インタフェース ExpId 内の getNextId
戻り値:
the next ExpId in the hash chain.

setNextId

public void setNextId(ExpId pNextId)
インタフェース ExpId の記述:
setNextId Set the next ExpId in the hash chain.

定義:
インタフェース ExpId 内の setNextId
パラメータ:
pNextId - the next ExpId in the hash chain.

toString

public java.lang.String toString()
インタフェース HasStringObject の記述:
Get the string image of object.

定義:
インタフェース HasStringObject 内の toString
オーバーライド:
クラス SymImpl 内の toString

toStringDetail

public java.lang.String toStringDetail()
インタフェース Sym の記述:
toStringDetail Get detailed attributes of this symbol in text which is not interned.

定義:
インタフェース Sym 内の toStringDetail
オーバーライド:
クラス SymImpl 内の toStringDetail

setExpInf

public void setExpInf(ExpInf pExpInf)
定義:
インタフェース ExpId 内の setExpInf

getExpInf

public ExpInf getExpInf()
定義:
インタフェース ExpId 内の getExpInf

isLHS

public boolean isLHS()
定義:
インタフェース ExpId 内の isLHS

getOperandSet

public java.util.Set getOperandSet()
インタフェース ExpId の記述:
Returns the set of FlowAnalSyms that are operands of this FlowExpId. An operand of a FlowExpId is simply a FlowAnalSym that is attached to one of the nodes that comprise the tree represented by the FlowExpId.

定義:
インタフェース ExpId 内の getOperandSet
戻り値:
the set of operands.

getOperandSet0

public java.util.Set getOperandSet0()
インタフェース ExpId の記述:
Returns the set of FlowAnalSyms that are operands of this FlowExpId, and that hold the value that may contribute to the result of the computation of this FlowExpId. For example, in HIR, if a symbol node is operated by the addressOf operator, and there is no contentsOf operator operating at all afterwards, the symbol attached to the symbol node is not included in the set returned by this method.

定義:
インタフェース ExpId 内の getOperandSet0

getNumberOfOperations

public int getNumberOfOperations()
インタフェース ExpId の記述:
Returns the number of operations this FlowExpId involves. This is not more than but roughly equal to the number of this FlowExpId's linked node's descendant nodes.

定義:
インタフェース ExpId 内の getNumberOfOperations

setSetRefRepr

public void setSetRefRepr(SetRefRepr pSetRefRepr)
インタフェース ExpId の記述:
 Set SetRefRepr information that is used in
 data flow analysis for the expression corresponding
 to this ExpId.
 The SetRefRepr represents such information as
   set of symbols refered by the expression/statement
   set of symbols modified by the expression/statement
   ...

定義:
インタフェース ExpId 内の setSetRefRepr
パラメータ:
pSetRefRepr - information to be set.

getSetRefRepr

public SetRefRepr getSetRefRepr()
インタフェース ExpId の記述:
 Get SetRefRepr information that is used in
 data flow analysis for the expression corresponding
 to this ExpId.
 The SetRefRepr represents such information as
   set of symbols refered by the expression/statement
   set of symbols modified by the expression/statement
   ...
 

定義:
インタフェース ExpId 内の getSetRefRepr
戻り値:
the corresponding SetRefRepr instance.

getIndex

public int getIndex()
インタフェース FlowAnalSym の記述:
getIndex Get the index number assigned to the symbol. The index number is used in data flow analysis, etc. For ExpId, do not use setIndex but use setLinkedNode. If no index number is assigned to this symbol, return 0.

定義:
インタフェース FlowAnalSym 内の getIndex
戻り値:
the index number assigned to the symbol.

setIndex

public void setIndex(int pIndex)
インタフェース FlowAnalSym の記述:
setIndex Set the index number assigned to the symbol. The index number is used in data flow analysis, etc. For ExpId, do not use setIndex but use setLinkedNode.

定義:
インタフェース FlowAnalSym 内の setIndex
パラメータ:
pIndex - index number to be set to this symbol.

resetFlowAnalInf

public void resetFlowAnalInf()
インタフェース FlowAnalSym の記述:
resetFlowAnalInf Reset information for flow analysis, that is, nullify DefUseList, definition list, use list, ExpId, and reset the index value to 0.

定義:
インタフェース FlowAnalSym 内の resetFlowAnalInf

addOperand

public void addOperand(FlowAnalSym pOperand)

getFlowExpId

public FlowExpId getFlowExpId()
インタフェース ExpId の記述:
getFlowExpId Get the FlowExpId that is used in aflow.

定義:
インタフェース ExpId 内の getFlowExpId
戻り値:
FlowExpId.

setFlowExpId

public void setFlowExpId(FlowExpId pFlowExpId)
インタフェース ExpId の記述:
setFlowExpId Set the FlowExpId that is used in aflow.

定義:
インタフェース ExpId 内の setFlowExpId
パラメータ:
pFlowExpId - corresponding FlowExpId instance.