GCC Middle and Back End API Reference
|
#include <function.h>
Data Fields | |
int | x_reg_rtx_no |
int | x_first_label_num |
rtx | x_first_insn |
rtx | x_last_insn |
struct sequence_stack * | sequence_stack |
int | x_cur_insn_uid |
int | x_cur_debug_insn_uid |
int | regno_pointer_align_length |
unsigned char * | regno_pointer_align |
unsigned char* emit_status::regno_pointer_align |
Indexed by pseudo register number, if nonzero gives the known alignment for that pseudo (if REG_POINTER is set in x_regno_reg_rtx). Allocated in parallel with x_regno_reg_rtx.
int emit_status::regno_pointer_align_length |
The length of the regno_pointer_align, regno_decl, and x_regno_reg_rtx vectors. Since these vectors are needed during the expansion phase when the total number of registers in the function is not yet known, the vectors are copied and made bigger when necessary.
struct sequence_stack* emit_status::sequence_stack |
Stack of pending (incomplete) sequences saved by `start_sequence'. Each element describes one pending sequence. The main insn-chain is saved in the last element of the chain, unless the chain is empty.
int emit_status::x_cur_debug_insn_uid |
INSN_UID for next debug insn emitted. Only used if –param min-nondebug-insn-uid=
is given with nonzero value.
int emit_status::x_cur_insn_uid |
INSN_UID for next insn emitted. Reset to 1 for each function compiled.
rtx emit_status::x_first_insn |
The ends of the doubly-linked chain of rtl for the current function. Both are reset to null at the start of rtl generation for the function.
start_sequence saves both of these on `sequence_stack' and then starts a new, nested sequence of insns.
int emit_status::x_first_label_num |
Lowest label number in current function.
rtx emit_status::x_last_insn |
int emit_status::x_reg_rtx_no |
This is reset to LAST_VIRTUAL_REGISTER + 1 at the start of each function. After rtl generation, it is 1 plus the largest register number used.