GCC Middle and Back End API Reference
dw_trace_info Struct Reference
Collaboration diagram for dw_trace_info:

Data Fields

rtx_insnhead
 
dw_cfi_rowbeg_row
 
dw_cfi_rowend_row
 
poly_int64 beg_true_args_size
 
poly_int64 end_true_args_size
 
poly_int64 beg_delay_args_size
 
poly_int64 end_delay_args_size
 
rtx_insneh_head
 
dw_cfa_location cfa_store
 
dw_cfa_location cfa_temp
 
vec< reg_saved_in_dataregs_saved_in_regs
 
unsigned id
 
bool switch_sections
 
bool args_size_undefined
 
bool args_size_defined_for_eh
 

Detailed Description

Since we no longer have a proper CFG, we're going to create a facsimile
of one on the fly while processing the frame-related insns.

We create dw_trace_info structures for each extended basic block beginning
and ending at a "save point".  Save points are labels, barriers, certain
notes, and of course the beginning and end of the function.

As we encounter control transfer insns, we propagate the "current"
row state across the edges to the starts of traces.  When checking is
enabled, we validate that we propagate the same data from all sources.

All traces are members of the TRACE_INFO array, in the order in which
they appear in the instruction stream.

All save points are present in the TRACE_INDEX hash, mapping the insn
starting a trace to the dw_trace_info describing the trace.   

Field Documentation

◆ args_size_defined_for_eh

bool dw_trace_info::args_size_defined_for_eh

Referenced by connect_traces(), and notice_args_size().

◆ args_size_undefined

bool dw_trace_info::args_size_undefined

◆ beg_delay_args_size

poly_int64 dw_trace_info::beg_delay_args_size

Referenced by connect_traces(), and notice_eh_throw().

◆ beg_row

dw_cfi_row* dw_trace_info::beg_row

◆ beg_true_args_size

poly_int64 dw_trace_info::beg_true_args_size

◆ cfa_store

◆ cfa_temp

◆ eh_head

rtx_insn* dw_trace_info::eh_head

◆ end_delay_args_size

poly_int64 dw_trace_info::end_delay_args_size

Referenced by connect_traces(), and notice_eh_throw().

◆ end_row

dw_cfi_row * dw_trace_info::end_row

Referenced by connect_traces().

◆ end_true_args_size

◆ head

◆ id

unsigned dw_trace_info::id

◆ regs_saved_in_regs

◆ switch_sections

bool dw_trace_info::switch_sections

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