coins.sym
インタフェース Label

すべてのスーパーインタフェース:
Sym, Sym0
既知の実装クラスの一覧:
LabelImpl

public interface Label
extends Sym

Label interface LabelImpl class implements this interface.


フィールドの概要
static int CONTINUE_LABEL
          Label kind numbers
static int ELSE_LABEL
          Label kind numbers
static int END_IF_LABEL
          Label kind numbers
static int ENTRY_LABEL
          Label kind numbers
static int JUMP_LABEL
          Label kind numbers
static int LOOP_BACK_LABEL
          Label kind numbers
static int LOOP_BODY_LABEL
          Label kind numbers
static int LOOP_COND_INIT_LABEL
          Label kind numbers
static int LOOP_END_LABEL
          Label kind numbers
static int LOOP_STEP_LABEL
          Label kind numbers
static int RETURN_POINT_LABEL
          Label kind numbers
static int SOURCE_LABEL
          Label kind numbers
static int SWITCH_CASE_LABEL
          Label kind numbers
static int SWITCH_DEFAULT_LABEL
          Label kind numbers
static int SWITCH_END_LABEL
          Label kind numbers
static int THEN_LABEL
          Label kind numbers
static int UNCLASSIFIED_LABEL
          Label kind numbers
 
インタフェース 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
 
メソッドの概要
 boolean endPointLabel()
          endPointLabel true if END_IF, LOOP_END, SWITCH_END.
 BBlock getBBlock()
          getBBlock Get basic block corresponding to this label.
 LabeledStmt getHirPosition()
          getHirPosition Get the HIR statement defining this label.
 int getHirRefCount()
          getHirRefCount Get the reference count of this label in HIR.
 IrList getHirRefList()
          getHirRefList Get the list of LabelNodes refering this label.
 int getLabelKind()
          getLabelKind Get label kind such as hten-label, else-label, etc.
 HIR getOriginHir()
          getOriginHir Get the node that originate this label such as if-node for then-label, while-node for loop-back label, etc.
 void replaceHirLabel(Label pToLabel)
          replaceHirLabels Replace every LabelNode listed in getHirRefList() refering this label to a LabelNode of pToLabel.
 void setBBlock(BBlock pBBlock)
          setBBlock Set pBBlock as the basic block corresponding to this label.
 void setHirPosition(LabeledStmt pHirPosition)
          setHirPosition Set the HIR statement defining this label.
 void setLabelKind(int pLabelKind)
          setLabelKind Set label kind.
 void setOriginHir(HIR pOriginHir)
          setOriginHir Set origin node.
 
インタフェース 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, toStringDetail, 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
 

フィールドの詳細

UNCLASSIFIED_LABEL

public static final int UNCLASSIFIED_LABEL
Label kind numbers

関連項目:
定数フィールド値

ENTRY_LABEL

public static final int ENTRY_LABEL
Label kind numbers

関連項目:
定数フィールド値

THEN_LABEL

public static final int THEN_LABEL
Label kind numbers

関連項目:
定数フィールド値

ELSE_LABEL

public static final int ELSE_LABEL
Label kind numbers

関連項目:
定数フィールド値

LOOP_COND_INIT_LABEL

public static final int LOOP_COND_INIT_LABEL
Label kind numbers

関連項目:
定数フィールド値

LOOP_BACK_LABEL

public static final int LOOP_BACK_LABEL
Label kind numbers

関連項目:
定数フィールド値

LOOP_BODY_LABEL

public static final int LOOP_BODY_LABEL
Label kind numbers

関連項目:
定数フィールド値

LOOP_STEP_LABEL

public static final int LOOP_STEP_LABEL
Label kind numbers

関連項目:
定数フィールド値

SWITCH_CASE_LABEL

public static final int SWITCH_CASE_LABEL
Label kind numbers

関連項目:
定数フィールド値

SWITCH_DEFAULT_LABEL

public static final int SWITCH_DEFAULT_LABEL
Label kind numbers

関連項目:
定数フィールド値

RETURN_POINT_LABEL

public static final int RETURN_POINT_LABEL
Label kind numbers

関連項目:
定数フィールド値

JUMP_LABEL

public static final int JUMP_LABEL
Label kind numbers

関連項目:
定数フィールド値

CONTINUE_LABEL

public static final int CONTINUE_LABEL
Label kind numbers

関連項目:
定数フィールド値

SOURCE_LABEL

public static final int SOURCE_LABEL
Label kind numbers

関連項目:
定数フィールド値

END_IF_LABEL

public static final int END_IF_LABEL
Label kind numbers

関連項目:
定数フィールド値

LOOP_END_LABEL

public static final int LOOP_END_LABEL
Label kind numbers

関連項目:
定数フィールド値

SWITCH_END_LABEL

public static final int SWITCH_END_LABEL
Label kind numbers

関連項目:
定数フィールド値
メソッドの詳細

getHirPosition

public LabeledStmt getHirPosition()
getHirPosition Get the HIR statement defining this label.

戻り値:
the LabeledStmt defining this label.

setHirPosition

public void setHirPosition(LabeledStmt pHirPosition)
setHirPosition Set the HIR statement defining this label.

パラメータ:
pHirPosition - HIR statement to which this is defined as its label (it is a LabeledStmt).

getHirRefList

public IrList getHirRefList()
getHirRefList Get the list of LabelNodes refering this label. If there is no HIR reference, return null. The reference list is built by finishHir() called for SubpDefinition or Program. The list is also built by buildLabelRefList() of Subp. Before that time or after label deletion/insertion, the list may be null or its contents may be incorrect.

戻り値:
the list of LabelNodes refering this label.

getHirRefCount

public int getHirRefCount()
getHirRefCount Get the reference count of this label in HIR. The reference list is built by visit(....) of coins.flow.LabelRefListBuilder. Before that time or after label deletion/insertion, the count may incorrect.

戻り値:
the HIR reference count of this label.

getBBlock

public BBlock getBBlock()
getBBlock Get basic block corresponding to this label.

戻り値:
the basic block.

setBBlock

public void setBBlock(BBlock pBBlock)
setBBlock Set pBBlock as the basic block corresponding to this label.

パラメータ:
pBBlock - basic block to be set.

getLabelKind

public int getLabelKind()
getLabelKind Get label kind such as hten-label, else-label, etc.

戻り値:
label kind.

setLabelKind

public void setLabelKind(int pLabelKind)
setLabelKind Set label kind. The label kind is used in modifying control flow graph.


endPointLabel

public boolean endPointLabel()
endPointLabel true if END_IF, LOOP_END, SWITCH_END.

戻り値:
true/false

getOriginHir

public HIR getOriginHir()
getOriginHir
 Get the node that originate this label
                such as if-node for then-label,
                while-node for loop-back label, etc.
  Correspondence between fLabelKind and fOriginHir ..
        fLabelKind           fOriginHir
      ENTRY_LABEL          : entry node
      THEN_LABEL           : IfStmt node
      ELSE_LABEL           : IfStmt node
      END_IF_LABEL         : IfStmt node
      LOOP_COND_INIT_LABEL : LoopStmt node
      LOOP_BACK_LABEL      : LoopStmt node
      LOOP_BODY_LABEL      : LoopStmt node
      LOOP_STEP_LABEL      : LoopStmt node
      LOOP_END_LABEL       : LoopStmt node
      SWITCH_CASE_LABEL    : SwitchStmt node
      SWITCH_DEFAULT_LABEL : SwitchStmt node
      SWITCH_END_LABEL     : SwitchStmt node
      RETURN_POINT_LABEL   : FunctionExp node
      JUMP_LABEL           : JumpStmt node
      CONTINUE_LABEL       : Predecessor node
      SOURCE_LABEL         : JumpStmt node if there is.


setOriginHir

public void setOriginHir(HIR pOriginHir)
setOriginHir Set origin node.

パラメータ:
pOriginHir - Origin node of this label.

replaceHirLabel

public void replaceHirLabel(Label pToLabel)
replaceHirLabels Replace every LabelNode listed in getHirRefList() refering this label to a LabelNode of pToLabel. If this label has no reference, then no replecement is done.

パラメータ:
pToLabel - Label by which this label is to be replaced.