GCC Middle and Back End API Reference
rtl_data Struct Reference

#include <emit-rtl.h>

Collaboration diagram for rtl_data:

Public Member Functions

void init_stack_alignment ()
 

Data Fields

struct expr_status expr
 
struct emit_status emit
 
struct varasm_status varasm
 
struct incoming_args args
 
struct function_subsections subsections
 
struct rtl_eh eh
 
const predefined_function_abiabi
 
rtl_ssa::function_info * ssa
 
poly_int64 outgoing_args_size
 
rtx return_rtx
 
struct initial_value_structhard_reg_initial_vals
 
tree stack_protect_guard
 
tree stack_protect_guard_decl
 
rtx_insn_listx_nonlocal_goto_handler_labels
 
rtx_code_labelx_return_label
 
rtx_code_labelx_naked_return_label
 
vec< rtx, va_gc > * x_stack_slot_list
 
class frame_spaceframe_space_list
 
rtx_notex_stack_check_probe_note
 
rtx x_arg_pointer_save_area
 
rtx drap_reg
 
poly_int64 x_frame_offset
 
rtx_insnx_function_beg_insn
 
rtx_insnx_parm_birth_insn
 
vec< temp_slot_p, va_gc > * x_used_temp_slots
 
class temp_slotx_avail_temp_slots
 
int x_temp_slot_level
 
unsigned int stack_alignment_needed
 
unsigned int preferred_stack_boundary
 
unsigned int parm_stack_boundary
 
unsigned int max_used_stack_slot_alignment
 
unsigned int stack_alignment_estimated
 
unsigned short patch_area_size
 
unsigned short patch_area_entry
 
bool accesses_prior_frames
 
bool calls_eh_return
 
bool saves_all_registers
 
bool has_nonlocal_goto
 
bool has_asm_statement
 
bool all_throwers_are_sibcalls
 
bool limit_stack
 
bool profile
 
bool uses_const_pool
 
bool uses_pic_offset_table
 
bool uses_eh_lsda
 
bool tail_call_emit
 
bool arg_pointer_save_area_init
 
bool frame_pointer_needed
 
bool maybe_hot_insn_p
 
bool stack_realign_needed
 
bool stack_realign_tried
 
bool need_drap
 
bool stack_realign_processed
 
bool stack_realign_finalized
 
bool dbr_scheduled_p
 
bool nothrow
 
bool shrink_wrapped
 
bool shrink_wrapped_separate
 
bool sp_is_unchanging
 
bool sp_is_clobbered_by_asm
 
bool is_leaf
 
bool uses_only_leaf_regs
 
bool has_bb_partition
 
bool bb_reorder_complete
 
HARD_REG_SET asm_clobbers
 
HARD_REG_SET must_be_zero_on_return
 
int max_insn_address
 

Detailed Description

Datastructures maintained for currently processed function in RTL form.   

Member Function Documentation

◆ init_stack_alignment()

void rtl_data::init_stack_alignment ( )
Initialize fields of rtl_data related to stack alignment.   

References max_used_stack_slot_alignment, preferred_stack_boundary, stack_alignment_estimated, and stack_alignment_needed.

Field Documentation

◆ abi

const predefined_function_abi* rtl_data::abi

◆ accesses_prior_frames

bool rtl_data::accesses_prior_frames

◆ all_throwers_are_sibcalls

bool rtl_data::all_throwers_are_sibcalls

◆ arg_pointer_save_area_init

bool rtl_data::arg_pointer_save_area_init

◆ args

struct incoming_args rtl_data::args

◆ asm_clobbers

HARD_REG_SET rtl_data::asm_clobbers

◆ bb_reorder_complete

bool rtl_data::bb_reorder_complete

◆ calls_eh_return

bool rtl_data::calls_eh_return

◆ dbr_scheduled_p

bool rtl_data::dbr_scheduled_p

◆ drap_reg

rtx rtl_data::drap_reg

◆ eh

struct rtl_eh rtl_data::eh

◆ emit

struct emit_status rtl_data::emit

◆ expr

struct expr_status rtl_data::expr

◆ frame_pointer_needed

bool rtl_data::frame_pointer_needed

◆ frame_space_list

class frame_space* rtl_data::frame_space_list

◆ hard_reg_initial_vals

struct initial_value_struct* rtl_data::hard_reg_initial_vals

◆ has_asm_statement

bool rtl_data::has_asm_statement

◆ has_bb_partition

bool rtl_data::has_bb_partition

◆ has_nonlocal_goto

bool rtl_data::has_nonlocal_goto

◆ is_leaf

bool rtl_data::is_leaf

◆ limit_stack

bool rtl_data::limit_stack

◆ max_insn_address

int rtl_data::max_insn_address

◆ max_used_stack_slot_alignment

unsigned int rtl_data::max_used_stack_slot_alignment

Referenced by init_stack_alignment().

◆ maybe_hot_insn_p

bool rtl_data::maybe_hot_insn_p

◆ must_be_zero_on_return

HARD_REG_SET rtl_data::must_be_zero_on_return

◆ need_drap

bool rtl_data::need_drap

◆ nothrow

bool rtl_data::nothrow

◆ outgoing_args_size

poly_int64 rtl_data::outgoing_args_size

◆ parm_stack_boundary

unsigned int rtl_data::parm_stack_boundary

◆ patch_area_entry

unsigned short rtl_data::patch_area_entry

◆ patch_area_size

unsigned short rtl_data::patch_area_size

◆ preferred_stack_boundary

unsigned int rtl_data::preferred_stack_boundary

Referenced by init_stack_alignment().

◆ profile

bool rtl_data::profile

◆ return_rtx

rtx rtl_data::return_rtx

◆ saves_all_registers

bool rtl_data::saves_all_registers

◆ shrink_wrapped

bool rtl_data::shrink_wrapped

◆ shrink_wrapped_separate

bool rtl_data::shrink_wrapped_separate

◆ sp_is_clobbered_by_asm

bool rtl_data::sp_is_clobbered_by_asm

◆ sp_is_unchanging

bool rtl_data::sp_is_unchanging

◆ ssa

rtl_ssa::function_info* rtl_data::ssa

◆ stack_alignment_estimated

unsigned int rtl_data::stack_alignment_estimated

Referenced by init_stack_alignment().

◆ stack_alignment_needed

unsigned int rtl_data::stack_alignment_needed

Referenced by init_stack_alignment().

◆ stack_protect_guard

tree rtl_data::stack_protect_guard

◆ stack_protect_guard_decl

tree rtl_data::stack_protect_guard_decl

◆ stack_realign_finalized

bool rtl_data::stack_realign_finalized

◆ stack_realign_needed

bool rtl_data::stack_realign_needed

◆ stack_realign_processed

bool rtl_data::stack_realign_processed

◆ stack_realign_tried

bool rtl_data::stack_realign_tried

◆ subsections

struct function_subsections rtl_data::subsections

◆ tail_call_emit

bool rtl_data::tail_call_emit

◆ uses_const_pool

bool rtl_data::uses_const_pool

◆ uses_eh_lsda

bool rtl_data::uses_eh_lsda

◆ uses_only_leaf_regs

bool rtl_data::uses_only_leaf_regs

◆ uses_pic_offset_table

bool rtl_data::uses_pic_offset_table

◆ varasm

struct varasm_status rtl_data::varasm

◆ x_arg_pointer_save_area

rtx rtl_data::x_arg_pointer_save_area

◆ x_avail_temp_slots

class temp_slot* rtl_data::x_avail_temp_slots

◆ x_frame_offset

poly_int64 rtl_data::x_frame_offset

◆ x_function_beg_insn

rtx_insn* rtl_data::x_function_beg_insn

◆ x_naked_return_label

rtx_code_label* rtl_data::x_naked_return_label

◆ x_nonlocal_goto_handler_labels

rtx_insn_list* rtl_data::x_nonlocal_goto_handler_labels

◆ x_parm_birth_insn

rtx_insn* rtl_data::x_parm_birth_insn

◆ x_return_label

rtx_code_label* rtl_data::x_return_label

◆ x_stack_check_probe_note

rtx_note* rtl_data::x_stack_check_probe_note

◆ x_stack_slot_list

vec<rtx, va_gc>* rtl_data::x_stack_slot_list

◆ x_temp_slot_level

int rtl_data::x_temp_slot_level

◆ x_used_temp_slots

vec<temp_slot_p, va_gc>* rtl_data::x_used_temp_slots

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