gcc-8.3/gcc/rtx_def
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#o1eb412b]
#backlinks
*説明 [#kc7e85b1]
-パス: [[gcc-8.3/gcc/rtl.h]]
-FIXME: これは何?
--説明
**参考 [#i7542637]
*実装 [#x144e92b]
/* RTL expression ("rtx"). */
/* The GTY "desc" and "tag" options below are a kludge: ...
field for gengtype to recognize that inheritance is o...
so that all subclasses are redirected to the traversa...
base class.
However, all of the fields are in the base class, and...
is at work. Hence we use desc and tag of 0, generati...
statement of the form:
switch (0)
{
case 0: // all the work happens here
}
in order to work with the existing special-casing in ...
struct GTY((desc("0"), tag("0"),
chain_next ("RTX_NEXT (&%h)"),
chain_prev ("RTX_PREV (&%h)"))) rtx_def {
-
--[[gcc-8.3/gcc/GTY()]]
/* The kind of expression this is. */
ENUM_BITFIELD(rtx_code) code: 16;
-
--[[gcc-8.3/gcc/ENUM_BITFIELD()]]
/* The kind of value the expression has. */
ENUM_BITFIELD(machine_mode) mode : 8;
/* 1 in a MEM if we should keep the alias set for this...
when we access a component.
1 in a JUMP_INSN if it is a crossing jump.
1 in a CALL_INSN if it is a sibling call.
1 in a SET that is for a return.
In a CODE_LABEL, part of the two-bit alternate entr...
1 in a CONCAT is VAL_EXPR_IS_COPIED in var-tracking...
1 in a VALUE is SP_BASED_VALUE_P in cselib.c.
1 in a SUBREG generated by LRA for reload insns.
1 in a REG if this is a static chain register.
1 in a CALL for calls instrumented by Pointer Bound...
Dumped as "/j" in RTL dumps. */
unsigned int jump : 1;
/* In a CODE_LABEL, part of the two-bit alternate entr...
1 in a MEM if it cannot trap.
1 in a CALL_INSN logically equivalent to
ECF_LOOPING_CONST_OR_PURE and DECL_LOOPING_CONST_...
Dumped as "/c" in RTL dumps. */
unsigned int call : 1;
/* 1 in a REG, MEM, or CONCAT if the value is set at m...
1 in a SUBREG used for SUBREG_PROMOTED_UNSIGNED_P.
1 in a SYMBOL_REF if it addresses something in the ...
constants pool.
1 in a CALL_INSN logically equivalent to ECF_CONST ...
1 in a NOTE, or EXPR_LIST for a const call.
1 in a JUMP_INSN of an annulling branch.
1 in a CONCAT is VAL_EXPR_IS_CLOBBERED in var-track...
1 in a preserved VALUE is PRESERVED_VALUE_P in csel...
1 in a clobber temporarily created for LRA.
Dumped as "/u" in RTL dumps. */
unsigned int unchanging : 1;
/* 1 in a MEM or ASM_OPERANDS expression if the memory...
1 in an INSN, CALL_INSN, JUMP_INSN, CODE_LABEL, BAR...
if it has been deleted.
1 in a REG expression if corresponds to a variable ...
0 for an internally generated temporary.
1 in a SUBREG used for SUBREG_PROMOTED_UNSIGNED_P.
1 in a LABEL_REF, REG_LABEL_TARGET or REG_LABEL_OPE...
non-local label.
In a SYMBOL_REF, this flag is used for machine-spec...
In a PREFETCH, this flag indicates that it should b...
scheduling barrier.
1 in a CONCAT is VAL_NEEDS_RESOLUTION in var-tracki...
Dumped as "/v" in RTL dumps. */
unsigned int volatil : 1;
/* 1 in a REG if the register is used only in exit cod...
1 in a SUBREG expression if was generated from a va...
promoted mode.
1 in a CODE_LABEL if the label is used for nonlocal...
and must not be deleted even if its count is zero.
1 in an INSN, JUMP_INSN or CALL_INSN if this insn m...
together with the preceding insn. Valid only withi...
1 in an INSN, JUMP_INSN, or CALL_INSN if insn is in...
from the target of a branch. Valid from reorg unti...
cleared before used.
The name of the field is historical. It used to be...
to record whether the MEM accessed part of a struct...
Dumped as "/s" in RTL dumps. */
unsigned int in_struct : 1;
/* At the end of RTL generation, 1 if this rtx is used...
copying shared structure. See `unshare_all_rtl'.
In a REG, this is not needed for that purpose, and ...
in `leaf_renumber_regs_insn'.
1 in a SYMBOL_REF, means that emit_library_call
has used it as the function.
1 in a CONCAT is VAL_HOLDS_TRACK_EXPR in var-tracki...
1 in a VALUE or DEBUG_EXPR is VALUE_RECURSED_INTO i...
unsigned int used : 1;
/* 1 in an INSN or a SET if this rtx is related to the...
either changing how we compute the frame address or...
restoring registers in the prologue and epilogue.
1 in a REG or MEM if it is a pointer.
1 in a SYMBOL_REF if it addresses something in the ...
constant string pool.
1 in a VALUE is VALUE_CHANGED in var-tracking.c.
Dumped as "/f" in RTL dumps. */
unsigned frame_related : 1;
/* 1 in a REG or PARALLEL that is the current function...
1 in a SYMBOL_REF for a weak symbol.
1 in a CALL_INSN logically equivalent to ECF_PURE a...
1 in a CONCAT is VAL_EXPR_HAS_REVERSE in var-tracki...
1 in a VALUE or DEBUG_EXPR is NO_LOC_P in var-track...
Dumped as "/i" in RTL dumps. */
unsigned return_val : 1;
union {
/* The final union field is aligned to 64 bits on LP...
giving a 32-bit gap after the fields above. We o...
layout for that case and use the gap for extra co...
information. */
/* The ORIGINAL_REGNO of a REG. */
unsigned int original_regno;
/* The INSN_UID of an RTX_INSN-class code. */
int insn_uid;
/* The SYMBOL_REF_FLAGS of a SYMBOL_REF. */
unsigned int symbol_ref_flags;
/* The PAT_VAR_LOCATION_STATUS of a VAR_LOCATION. */
enum var_init_status var_location_status;
/* In a CONST_WIDE_INT (aka hwivec_def), this is the...
HOST_WIDE_INTs in the hwivec_def. */
unsigned int num_elem;
/* Information about a CONST_VECTOR. */
struct
{
/* The value of CONST_VECTOR_NPATTERNS. */
unsigned int npatterns : 16;
/* The value of CONST_VECTOR_NELTS_PER_PATTERN. */
unsigned int nelts_per_pattern : 8;
/* For future expansion. */
unsigned int unused : 8;
} const_vector;
} GTY ((skip)) u2;
/* The first element of the operands of this rtx.
The number of operands and their types are controlled
by the `code' field, according to rtl.def. */
union u {
rtunion fld[1];
HOST_WIDE_INT hwint[1];
struct reg_info reg;
struct block_symbol block_sym;
struct real_value rv;
struct fixed_value fv;
struct hwivec_def hwiv;
struct const_poly_int_def cpi;
} GTY ((special ("rtx_def"), desc ("GET_CODE (&%0)")))...
-
--[[gcc-8.3/gcc/rtunion]]
--[[gcc-8.3/gcc/HOST_WIDE_INT]]
--[[gcc-8.3/gcc/reg_info]]
--[[gcc-8.3/gcc/block_symbol]]
--[[gcc-8.3/gcc/real_value]]
--[[gcc-8.3/gcc/fixed_value]]
--[[gcc-8.3/gcc/hwivec_def]]
--[[gcc-8.3/gcc/const_poly_int_def]]
};
*コメント [#f32577c3]
終了行:
*参照元 [#o1eb412b]
#backlinks
*説明 [#kc7e85b1]
-パス: [[gcc-8.3/gcc/rtl.h]]
-FIXME: これは何?
--説明
**参考 [#i7542637]
*実装 [#x144e92b]
/* RTL expression ("rtx"). */
/* The GTY "desc" and "tag" options below are a kludge: ...
field for gengtype to recognize that inheritance is o...
so that all subclasses are redirected to the traversa...
base class.
However, all of the fields are in the base class, and...
is at work. Hence we use desc and tag of 0, generati...
statement of the form:
switch (0)
{
case 0: // all the work happens here
}
in order to work with the existing special-casing in ...
struct GTY((desc("0"), tag("0"),
chain_next ("RTX_NEXT (&%h)"),
chain_prev ("RTX_PREV (&%h)"))) rtx_def {
-
--[[gcc-8.3/gcc/GTY()]]
/* The kind of expression this is. */
ENUM_BITFIELD(rtx_code) code: 16;
-
--[[gcc-8.3/gcc/ENUM_BITFIELD()]]
/* The kind of value the expression has. */
ENUM_BITFIELD(machine_mode) mode : 8;
/* 1 in a MEM if we should keep the alias set for this...
when we access a component.
1 in a JUMP_INSN if it is a crossing jump.
1 in a CALL_INSN if it is a sibling call.
1 in a SET that is for a return.
In a CODE_LABEL, part of the two-bit alternate entr...
1 in a CONCAT is VAL_EXPR_IS_COPIED in var-tracking...
1 in a VALUE is SP_BASED_VALUE_P in cselib.c.
1 in a SUBREG generated by LRA for reload insns.
1 in a REG if this is a static chain register.
1 in a CALL for calls instrumented by Pointer Bound...
Dumped as "/j" in RTL dumps. */
unsigned int jump : 1;
/* In a CODE_LABEL, part of the two-bit alternate entr...
1 in a MEM if it cannot trap.
1 in a CALL_INSN logically equivalent to
ECF_LOOPING_CONST_OR_PURE and DECL_LOOPING_CONST_...
Dumped as "/c" in RTL dumps. */
unsigned int call : 1;
/* 1 in a REG, MEM, or CONCAT if the value is set at m...
1 in a SUBREG used for SUBREG_PROMOTED_UNSIGNED_P.
1 in a SYMBOL_REF if it addresses something in the ...
constants pool.
1 in a CALL_INSN logically equivalent to ECF_CONST ...
1 in a NOTE, or EXPR_LIST for a const call.
1 in a JUMP_INSN of an annulling branch.
1 in a CONCAT is VAL_EXPR_IS_CLOBBERED in var-track...
1 in a preserved VALUE is PRESERVED_VALUE_P in csel...
1 in a clobber temporarily created for LRA.
Dumped as "/u" in RTL dumps. */
unsigned int unchanging : 1;
/* 1 in a MEM or ASM_OPERANDS expression if the memory...
1 in an INSN, CALL_INSN, JUMP_INSN, CODE_LABEL, BAR...
if it has been deleted.
1 in a REG expression if corresponds to a variable ...
0 for an internally generated temporary.
1 in a SUBREG used for SUBREG_PROMOTED_UNSIGNED_P.
1 in a LABEL_REF, REG_LABEL_TARGET or REG_LABEL_OPE...
non-local label.
In a SYMBOL_REF, this flag is used for machine-spec...
In a PREFETCH, this flag indicates that it should b...
scheduling barrier.
1 in a CONCAT is VAL_NEEDS_RESOLUTION in var-tracki...
Dumped as "/v" in RTL dumps. */
unsigned int volatil : 1;
/* 1 in a REG if the register is used only in exit cod...
1 in a SUBREG expression if was generated from a va...
promoted mode.
1 in a CODE_LABEL if the label is used for nonlocal...
and must not be deleted even if its count is zero.
1 in an INSN, JUMP_INSN or CALL_INSN if this insn m...
together with the preceding insn. Valid only withi...
1 in an INSN, JUMP_INSN, or CALL_INSN if insn is in...
from the target of a branch. Valid from reorg unti...
cleared before used.
The name of the field is historical. It used to be...
to record whether the MEM accessed part of a struct...
Dumped as "/s" in RTL dumps. */
unsigned int in_struct : 1;
/* At the end of RTL generation, 1 if this rtx is used...
copying shared structure. See `unshare_all_rtl'.
In a REG, this is not needed for that purpose, and ...
in `leaf_renumber_regs_insn'.
1 in a SYMBOL_REF, means that emit_library_call
has used it as the function.
1 in a CONCAT is VAL_HOLDS_TRACK_EXPR in var-tracki...
1 in a VALUE or DEBUG_EXPR is VALUE_RECURSED_INTO i...
unsigned int used : 1;
/* 1 in an INSN or a SET if this rtx is related to the...
either changing how we compute the frame address or...
restoring registers in the prologue and epilogue.
1 in a REG or MEM if it is a pointer.
1 in a SYMBOL_REF if it addresses something in the ...
constant string pool.
1 in a VALUE is VALUE_CHANGED in var-tracking.c.
Dumped as "/f" in RTL dumps. */
unsigned frame_related : 1;
/* 1 in a REG or PARALLEL that is the current function...
1 in a SYMBOL_REF for a weak symbol.
1 in a CALL_INSN logically equivalent to ECF_PURE a...
1 in a CONCAT is VAL_EXPR_HAS_REVERSE in var-tracki...
1 in a VALUE or DEBUG_EXPR is NO_LOC_P in var-track...
Dumped as "/i" in RTL dumps. */
unsigned return_val : 1;
union {
/* The final union field is aligned to 64 bits on LP...
giving a 32-bit gap after the fields above. We o...
layout for that case and use the gap for extra co...
information. */
/* The ORIGINAL_REGNO of a REG. */
unsigned int original_regno;
/* The INSN_UID of an RTX_INSN-class code. */
int insn_uid;
/* The SYMBOL_REF_FLAGS of a SYMBOL_REF. */
unsigned int symbol_ref_flags;
/* The PAT_VAR_LOCATION_STATUS of a VAR_LOCATION. */
enum var_init_status var_location_status;
/* In a CONST_WIDE_INT (aka hwivec_def), this is the...
HOST_WIDE_INTs in the hwivec_def. */
unsigned int num_elem;
/* Information about a CONST_VECTOR. */
struct
{
/* The value of CONST_VECTOR_NPATTERNS. */
unsigned int npatterns : 16;
/* The value of CONST_VECTOR_NELTS_PER_PATTERN. */
unsigned int nelts_per_pattern : 8;
/* For future expansion. */
unsigned int unused : 8;
} const_vector;
} GTY ((skip)) u2;
/* The first element of the operands of this rtx.
The number of operands and their types are controlled
by the `code' field, according to rtl.def. */
union u {
rtunion fld[1];
HOST_WIDE_INT hwint[1];
struct reg_info reg;
struct block_symbol block_sym;
struct real_value rv;
struct fixed_value fv;
struct hwivec_def hwiv;
struct const_poly_int_def cpi;
} GTY ((special ("rtx_def"), desc ("GET_CODE (&%0)")))...
-
--[[gcc-8.3/gcc/rtunion]]
--[[gcc-8.3/gcc/HOST_WIDE_INT]]
--[[gcc-8.3/gcc/reg_info]]
--[[gcc-8.3/gcc/block_symbol]]
--[[gcc-8.3/gcc/real_value]]
--[[gcc-8.3/gcc/fixed_value]]
--[[gcc-8.3/gcc/hwivec_def]]
--[[gcc-8.3/gcc/const_poly_int_def]]
};
*コメント [#f32577c3]
ページ名: