gcc-8.3/gcc/rtl_data
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#q4d51a4c]
#backlinks
*説明 [#t0d932d7]
-パス: [[gcc-8.3/gcc/emit-rtl.h]]
-FIXME: これは何?
--説明
**参考 [#bce4972c]
*実装 [#c43163d7]
/* Datastructures maintained for currently processed fun...
struct GTY(()) rtl_data {
void init_stack_alignment ();
struct expr_status expr;
struct emit_status emit;
struct varasm_status varasm;
struct incoming_args args;
struct function_subsections subsections;
struct rtl_eh eh;
-
--[[gcc-8.3/gcc/expr_status]]
--[[gcc-8.3/gcc/emit_status]]
--[[gcc-8.3/gcc/varasm_status]]
--[[gcc-8.3/gcc/incoming_args]]
--[[gcc-8.3/gcc/function_subsections]]
--[[gcc-8.3/gcc/rtl_eh]]
/* For function.c */
/* # of bytes of outgoing arguments. If ACCUMULATE_OU...
defined, the needed space is pushed by the prologue...
poly_int64_pod outgoing_args_size;
-
--[[gcc-8.3/gcc/poly_int64_pod]]
/* If nonzero, an RTL expression for the location at w...
function returns its result. If the current functi...
result in a register, current_function_return_rtx w...
the hard register containing the result. */
rtx return_rtx;
/* If nonxero, an RTL expression for the lcoation at w...
function returns bounds for its result. */
rtx return_bnd;
-
--[[gcc-8.3/gcc/rtx]]
/* Vector of initial-value pairs. Each pair consists ...
register of approprite mode that stores the initial...
register REGNO, and that hard register itself. */
/* ??? This could be a VEC but there is currently no w...
opaque VEC type. */
struct initial_value_struct *hard_reg_initial_vals;
-
--[[gcc-8.3/gcc/initial_value_struct]]
/* A variable living at the top of the frame that hold...
Used for detecting stack clobbers. */
tree stack_protect_guard;
-
--[[gcc-8.3/gcc/tree]]
/* List (chain of INSN_LIST) of labels heading the cur...
nonlocal gotos. */
rtx_insn_list *x_nonlocal_goto_handler_labels;
-
--[[gcc-8.3/gcc/rtx_insn_list]]
/* Label that will go on function epilogue.
Jumping to this label serves as a "return" instruct...
on machines which require execution of the epilogue...
rtx_code_label *x_return_label;
-
--[[gcc-8.3/gcc/rtx_code_label]]
/* Label that will go on the end of function epilogue.
Jumping to this label serves as a "naked return" in...
on machines which require execution of the epilogue...
rtx_code_label *x_naked_return_label;
/* List (chain of EXPR_LISTs) of all stack slots in th...
Made for the sake of unshare_all_rtl. */
vec<rtx, va_gc> *x_stack_slot_list;
-
--[[gcc-8.3/gcc/vec]]
--[[gcc-8.3/gcc/va_gc]]
/* List of empty areas in the stack frame. */
struct frame_space *frame_space_list;
-
--[[gcc-8.3/gcc/frame_space]]
/* Place after which to insert the tail_recursion_labe...
rtx_note *x_stack_check_probe_note;
-
--[[gcc-8.3/gcc/rtx_note]]
/* Location at which to save the argument pointer if i...
referenced. There are two cases where this is done...
exist, or if vars stored at an offset from the argu...
needed by inner routines. */
rtx x_arg_pointer_save_area;
/* Dynamic Realign Argument Pointer used for realignin...
rtx drap_reg;
/* Offset to end of allocated area of stack frame.
If stack grows down, this is the address of the las...
If stack grows up, this is the address for the next...
poly_int64_pod x_frame_offset;
/* Insn after which register parms and SAVE_EXPRs are ...
rtx_insn *x_parm_birth_insn;
-
--[[gcc-8.3/gcc/rtx_insn]]
/* List of all used temporaries allocated, by level. */
vec<temp_slot_p, va_gc> *x_used_temp_slots;
-
--[[gcc-8.3/gcc/temp_slot_p]]
--[[gcc-8.3/gcc/va_gc]]
/* List of available temp slots. */
struct temp_slot *x_avail_temp_slots;
-
--[[gcc-8.3/gcc/temp_slot]]
/* Current nesting level for temporaries. */
int x_temp_slot_level;
/* The largest alignment needed on the stack, includin...
for outgoing stack alignment. */
unsigned int stack_alignment_needed;
/* Preferred alignment of the end of stack frame, whic...
to call other functions. */
unsigned int preferred_stack_boundary;
/* The minimum alignment of parameter stack. */
unsigned int parm_stack_boundary;
/* The largest alignment of slot allocated on the stac...
unsigned int max_used_stack_slot_alignment;
/* The stack alignment estimated before reload, with c...
following factors:
1. Alignment of local stack variables (max_used_sta...
2. Alignment requirement to call other functions
(preferred_stack_boundary)
3. Alignment of non-local stack variables but might...
local stack. */
unsigned int stack_alignment_estimated;
/* For reorg. */
/* Nonzero if function being compiled called builtin_r...
builtin_frame_address with nonzero count. */
bool accesses_prior_frames;
/* Nonzero if the function calls __builtin_eh_return. ...
bool calls_eh_return;
/* Nonzero if function saves all registers, e.g. if it...
label that can reach the exit block via non-excepti...
bool saves_all_registers;
/* Nonzero if function being compiled has nonlocal got...
function. */
bool has_nonlocal_goto;
/* Nonzero if function being compiled has an asm state...
bool has_asm_statement;
/* This bit is used by the exception handling logic. ...
calls (if any) are sibling calls. Such functions d...
have EH tables generated, as they cannot throw. A ...
function, however, should be treated as throwing if...
can throw. */
bool all_throwers_are_sibcalls;
/* Nonzero if stack limit checking should be enabled i...
function. */
bool limit_stack;
/* Nonzero if profiling code should be generated. */
bool profile;
/* Nonzero if the current function uses the constant p...
bool uses_const_pool;
/* Nonzero if the current function uses pic_offset_tab...
bool uses_pic_offset_table;
/* Nonzero if the current function needs an lsda for e...
bool uses_eh_lsda;
/* Set when the tail call has been produced. */
bool tail_call_emit;
/* Nonzero if code to initialize arg_pointer_save_area...
bool arg_pointer_save_area_init;
/* Nonzero if current function must be given a frame p...
Set in reload1.c or lra-eliminations.c if anything ...
on the stack there. */
bool frame_pointer_needed;
/* When set, expand should optimize for speed. */
bool maybe_hot_insn_p;
/* Nonzero if function stack realignment is needed. T...
set twice: before and after reload. It is set befo...
stack alignment estimation before reload. It will ...
reload if by then criteria of stack realignment is ...
The value set after reload is the accurate one and ...
bool stack_realign_needed;
/* Nonzero if function stack realignment is tried. Th...
only once before reload. It affects register elimi...
is used to generate DWARF debug info for stack vari...
bool stack_realign_tried;
/* Nonzero if function being compiled needs dynamic re...
argument pointer (drap) if stack needs realigning. ...
bool need_drap;
/* Nonzero if function stack realignment estimation is...
stack_realign_needed flag has been set before reloa...
stack alignment info. */
bool stack_realign_processed;
/* Nonzero if function stack realignment has been fina...
stack_realign_needed flag has been set and finalize...
bool stack_realign_finalized;
/* True if dbr_schedule has already been called for th...
bool dbr_scheduled_p;
/* True if current function can not throw. Unlike
TREE_NOTHROW (current_function_decl) it is set even...
function where currently compiled version of it is ...
bool nothrow;
/* True if we performed shrink-wrapping for the curren...
bool shrink_wrapped;
/* True if we performed shrink-wrapping for separate c...
the current function. */
bool shrink_wrapped_separate;
/* Nonzero if function being compiled doesn't modify t...
(ignoring the prologue and epilogue). This is only...
pass_stack_ptr_mod has run. */
bool sp_is_unchanging;
/* Nonzero if function being compiled doesn't contain ...
(ignoring the prologue and epilogue). This is set ...
register allocation in IRA and is valid for the rem...
compiler passes. */
bool is_leaf;
/* Nonzero if the function being compiled is a leaf fu...
uses leaf registers. This is valid after reload (s...
sched2) and is useful only if the port defines LEAF...
bool uses_only_leaf_regs;
/* Nonzero if the function being compiled has undergon...
(under flag_reorder_blocks_and_partition) and has a...
block. */
bool has_bb_partition;
/* Nonzero if the function being compiled has complete...
pass. */
bool bb_reorder_complete;
/* Like regs_ever_live, but 1 if a reg is set or clobb...
asm. Unlike regs_ever_live, elements of this array...
to eliminable regs (like the frame pointer) are set...
sets them. */
HARD_REG_SET asm_clobbers;
-
--[[gcc-8.3/gcc/HARD_REG_SET]]
/* The highest address seen during shorten_branches. */
int max_insn_address;
};
*コメント [#v386adfd]
終了行:
*参照元 [#q4d51a4c]
#backlinks
*説明 [#t0d932d7]
-パス: [[gcc-8.3/gcc/emit-rtl.h]]
-FIXME: これは何?
--説明
**参考 [#bce4972c]
*実装 [#c43163d7]
/* Datastructures maintained for currently processed fun...
struct GTY(()) rtl_data {
void init_stack_alignment ();
struct expr_status expr;
struct emit_status emit;
struct varasm_status varasm;
struct incoming_args args;
struct function_subsections subsections;
struct rtl_eh eh;
-
--[[gcc-8.3/gcc/expr_status]]
--[[gcc-8.3/gcc/emit_status]]
--[[gcc-8.3/gcc/varasm_status]]
--[[gcc-8.3/gcc/incoming_args]]
--[[gcc-8.3/gcc/function_subsections]]
--[[gcc-8.3/gcc/rtl_eh]]
/* For function.c */
/* # of bytes of outgoing arguments. If ACCUMULATE_OU...
defined, the needed space is pushed by the prologue...
poly_int64_pod outgoing_args_size;
-
--[[gcc-8.3/gcc/poly_int64_pod]]
/* If nonzero, an RTL expression for the location at w...
function returns its result. If the current functi...
result in a register, current_function_return_rtx w...
the hard register containing the result. */
rtx return_rtx;
/* If nonxero, an RTL expression for the lcoation at w...
function returns bounds for its result. */
rtx return_bnd;
-
--[[gcc-8.3/gcc/rtx]]
/* Vector of initial-value pairs. Each pair consists ...
register of approprite mode that stores the initial...
register REGNO, and that hard register itself. */
/* ??? This could be a VEC but there is currently no w...
opaque VEC type. */
struct initial_value_struct *hard_reg_initial_vals;
-
--[[gcc-8.3/gcc/initial_value_struct]]
/* A variable living at the top of the frame that hold...
Used for detecting stack clobbers. */
tree stack_protect_guard;
-
--[[gcc-8.3/gcc/tree]]
/* List (chain of INSN_LIST) of labels heading the cur...
nonlocal gotos. */
rtx_insn_list *x_nonlocal_goto_handler_labels;
-
--[[gcc-8.3/gcc/rtx_insn_list]]
/* Label that will go on function epilogue.
Jumping to this label serves as a "return" instruct...
on machines which require execution of the epilogue...
rtx_code_label *x_return_label;
-
--[[gcc-8.3/gcc/rtx_code_label]]
/* Label that will go on the end of function epilogue.
Jumping to this label serves as a "naked return" in...
on machines which require execution of the epilogue...
rtx_code_label *x_naked_return_label;
/* List (chain of EXPR_LISTs) of all stack slots in th...
Made for the sake of unshare_all_rtl. */
vec<rtx, va_gc> *x_stack_slot_list;
-
--[[gcc-8.3/gcc/vec]]
--[[gcc-8.3/gcc/va_gc]]
/* List of empty areas in the stack frame. */
struct frame_space *frame_space_list;
-
--[[gcc-8.3/gcc/frame_space]]
/* Place after which to insert the tail_recursion_labe...
rtx_note *x_stack_check_probe_note;
-
--[[gcc-8.3/gcc/rtx_note]]
/* Location at which to save the argument pointer if i...
referenced. There are two cases where this is done...
exist, or if vars stored at an offset from the argu...
needed by inner routines. */
rtx x_arg_pointer_save_area;
/* Dynamic Realign Argument Pointer used for realignin...
rtx drap_reg;
/* Offset to end of allocated area of stack frame.
If stack grows down, this is the address of the las...
If stack grows up, this is the address for the next...
poly_int64_pod x_frame_offset;
/* Insn after which register parms and SAVE_EXPRs are ...
rtx_insn *x_parm_birth_insn;
-
--[[gcc-8.3/gcc/rtx_insn]]
/* List of all used temporaries allocated, by level. */
vec<temp_slot_p, va_gc> *x_used_temp_slots;
-
--[[gcc-8.3/gcc/temp_slot_p]]
--[[gcc-8.3/gcc/va_gc]]
/* List of available temp slots. */
struct temp_slot *x_avail_temp_slots;
-
--[[gcc-8.3/gcc/temp_slot]]
/* Current nesting level for temporaries. */
int x_temp_slot_level;
/* The largest alignment needed on the stack, includin...
for outgoing stack alignment. */
unsigned int stack_alignment_needed;
/* Preferred alignment of the end of stack frame, whic...
to call other functions. */
unsigned int preferred_stack_boundary;
/* The minimum alignment of parameter stack. */
unsigned int parm_stack_boundary;
/* The largest alignment of slot allocated on the stac...
unsigned int max_used_stack_slot_alignment;
/* The stack alignment estimated before reload, with c...
following factors:
1. Alignment of local stack variables (max_used_sta...
2. Alignment requirement to call other functions
(preferred_stack_boundary)
3. Alignment of non-local stack variables but might...
local stack. */
unsigned int stack_alignment_estimated;
/* For reorg. */
/* Nonzero if function being compiled called builtin_r...
builtin_frame_address with nonzero count. */
bool accesses_prior_frames;
/* Nonzero if the function calls __builtin_eh_return. ...
bool calls_eh_return;
/* Nonzero if function saves all registers, e.g. if it...
label that can reach the exit block via non-excepti...
bool saves_all_registers;
/* Nonzero if function being compiled has nonlocal got...
function. */
bool has_nonlocal_goto;
/* Nonzero if function being compiled has an asm state...
bool has_asm_statement;
/* This bit is used by the exception handling logic. ...
calls (if any) are sibling calls. Such functions d...
have EH tables generated, as they cannot throw. A ...
function, however, should be treated as throwing if...
can throw. */
bool all_throwers_are_sibcalls;
/* Nonzero if stack limit checking should be enabled i...
function. */
bool limit_stack;
/* Nonzero if profiling code should be generated. */
bool profile;
/* Nonzero if the current function uses the constant p...
bool uses_const_pool;
/* Nonzero if the current function uses pic_offset_tab...
bool uses_pic_offset_table;
/* Nonzero if the current function needs an lsda for e...
bool uses_eh_lsda;
/* Set when the tail call has been produced. */
bool tail_call_emit;
/* Nonzero if code to initialize arg_pointer_save_area...
bool arg_pointer_save_area_init;
/* Nonzero if current function must be given a frame p...
Set in reload1.c or lra-eliminations.c if anything ...
on the stack there. */
bool frame_pointer_needed;
/* When set, expand should optimize for speed. */
bool maybe_hot_insn_p;
/* Nonzero if function stack realignment is needed. T...
set twice: before and after reload. It is set befo...
stack alignment estimation before reload. It will ...
reload if by then criteria of stack realignment is ...
The value set after reload is the accurate one and ...
bool stack_realign_needed;
/* Nonzero if function stack realignment is tried. Th...
only once before reload. It affects register elimi...
is used to generate DWARF debug info for stack vari...
bool stack_realign_tried;
/* Nonzero if function being compiled needs dynamic re...
argument pointer (drap) if stack needs realigning. ...
bool need_drap;
/* Nonzero if function stack realignment estimation is...
stack_realign_needed flag has been set before reloa...
stack alignment info. */
bool stack_realign_processed;
/* Nonzero if function stack realignment has been fina...
stack_realign_needed flag has been set and finalize...
bool stack_realign_finalized;
/* True if dbr_schedule has already been called for th...
bool dbr_scheduled_p;
/* True if current function can not throw. Unlike
TREE_NOTHROW (current_function_decl) it is set even...
function where currently compiled version of it is ...
bool nothrow;
/* True if we performed shrink-wrapping for the curren...
bool shrink_wrapped;
/* True if we performed shrink-wrapping for separate c...
the current function. */
bool shrink_wrapped_separate;
/* Nonzero if function being compiled doesn't modify t...
(ignoring the prologue and epilogue). This is only...
pass_stack_ptr_mod has run. */
bool sp_is_unchanging;
/* Nonzero if function being compiled doesn't contain ...
(ignoring the prologue and epilogue). This is set ...
register allocation in IRA and is valid for the rem...
compiler passes. */
bool is_leaf;
/* Nonzero if the function being compiled is a leaf fu...
uses leaf registers. This is valid after reload (s...
sched2) and is useful only if the port defines LEAF...
bool uses_only_leaf_regs;
/* Nonzero if the function being compiled has undergon...
(under flag_reorder_blocks_and_partition) and has a...
block. */
bool has_bb_partition;
/* Nonzero if the function being compiled has complete...
pass. */
bool bb_reorder_complete;
/* Like regs_ever_live, but 1 if a reg is set or clobb...
asm. Unlike regs_ever_live, elements of this array...
to eliminable regs (like the frame pointer) are set...
sets them. */
HARD_REG_SET asm_clobbers;
-
--[[gcc-8.3/gcc/HARD_REG_SET]]
/* The highest address seen during shorten_branches. */
int max_insn_address;
};
*コメント [#v386adfd]
ページ名: