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().

◆ 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().

◆ 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

dw_cfa_location dw_trace_info::cfa_store

◆ cfa_temp

dw_cfa_location dw_trace_info::cfa_temp

◆ eh_head

rtx_insn* dw_trace_info::eh_head

Referenced by connect_traces().

◆ end_delay_args_size

poly_int64 dw_trace_info::end_delay_args_size

Referenced by connect_traces().

◆ end_row

dw_cfi_row * dw_trace_info::end_row

Referenced by connect_traces().

◆ end_true_args_size

poly_int64 dw_trace_info::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: