GCC Middle and Back End API Reference
target_rtl Struct Reference

#include <rtl.h>

Collaboration diagram for target_rtl:

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_attrsx_mode_mem_attrs [(int) MAX_MACHINE_MODE]

Detailed Description

   Target-dependent globals.  

Field Documentation

rtx target_rtl::x_global_rtl[GR_MAX]
     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
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.  

The documentation for this struct was generated from the following file: