GCC Middle and Back End API Reference
|
#include <rtl.h>
Data Fields | |
rtx | x_global_rtl [GR_MAX] |
rtx | x_pic_offset_table_rtx |
rtx | x_return_address_pointer_rtx |
rtx | x_initial_regno_reg_rtx [FIRST_PSEUDO_REGISTER] |
rtx | x_top_of_stack [MAX_MACHINE_MODE] |
rtx | x_static_reg_base_value [FIRST_PSEUDO_REGISTER] |
struct mem_attrs * | x_mode_mem_attrs [(int) MAX_MACHINE_MODE] |
Target-dependent globals.
All references to the hard registers in global_rtl_index go through these unique rtl objects. On machines where the frame-pointer and arg-pointer are the same register, they use the same unique object. After register allocation, other rtl objects which used to be pseudo-regs may be clobbered to refer to the frame-pointer register. But references that were originally to the frame-pointer can be distinguished from the others because they contain frame_pointer_rtx. When to use frame_pointer_rtx and hard_frame_pointer_rtx is a little tricky: until register elimination has taken place hard_frame_pointer_rtx should be used if it is being set, and frame_pointer_rtx otherwise. After register elimination hard_frame_pointer_rtx should always be used. On machines where the two registers are same (most) then these are the same.
rtx target_rtl::x_initial_regno_reg_rtx[FIRST_PSEUDO_REGISTER] |
Commonly used RTL for hard registers. These objects are not necessarily unique, so we allocate them separately from global_rtl. They are initialized once per compilation unit, then copied into regno_reg_rtx at the beginning of each function.
struct mem_attrs* target_rtl::x_mode_mem_attrs[(int) MAX_MACHINE_MODE] |
The default memory attributes for each mode.
rtx target_rtl::x_pic_offset_table_rtx |
A unique representation of (REG:Pmode PIC_OFFSET_TABLE_REGNUM).
rtx target_rtl::x_return_address_pointer_rtx |
A unique representation of (REG:Pmode RETURN_ADDRESS_POINTER_REGNUM). This is used to implement __builtin_return_address for some machines; see for instance the MIPS port.
rtx target_rtl::x_static_reg_base_value[FIRST_PSEUDO_REGISTER] |
Static hunks of RTL used by the aliasing code; these are treated as persistent to avoid unnecessary RTL allocations.
rtx target_rtl::x_top_of_stack[MAX_MACHINE_MODE] |
A sample (mem:M stack_pointer_rtx) rtx for each mode M.