GCC Middle and Back End API Reference
|
#include <print-rtl.h>
Public Member Functions | |
rtx_writer (FILE *outfile, int ind, bool simple, bool compact, rtx_reuse_manager *reuse_manager) | |
void | print_rtx (const_rtx in_rtx) |
void | print_rtl (const_rtx rtx_first) |
void | print_rtl_single_with_indent (const_rtx x, int ind) |
void | finish_directive () |
Private Member Functions | |
void | print_rtx_operand_code_0 (const_rtx in_rtx, int idx) |
void | print_rtx_operand_code_e (const_rtx in_rtx, int idx) |
void | print_rtx_operand_codes_E_and_V (const_rtx in_rtx, int idx) |
void | print_rtx_operand_code_i (const_rtx in_rtx, int idx) |
void | print_rtx_operand_code_L (const_rtx in_rtx, int idx) |
void | print_rtx_operand_code_r (const_rtx in_rtx) |
void | print_rtx_operand_code_u (const_rtx in_rtx, int idx) |
void | print_rtx_operand (const_rtx in_rtx, int idx) |
bool | operand_has_default_value_p (const_rtx in_rtx, int idx) |
Private Attributes | |
FILE * | m_outfile |
int | m_indent |
bool | m_sawclose |
bool | m_in_call_function_usage |
bool | m_simple |
bool | m_compact |
rtx_reuse_manager * | m_rtx_reuse_manager |
A class for writing rtx to a FILE *.
rtx_writer::rtx_writer | ( | FILE * | outf, |
int | ind, | ||
bool | simple, | ||
bool | compact, | ||
rtx_reuse_manager * | reuse_manager ) |
Constructor for rtx_writer.
void rtx_writer::finish_directive | ( | ) |
Emit a closing parenthesis and newline.
References m_outfile, and m_sawclose.
Referenced by print_param().
Subroutine of rtx_writer::print_rtx. In compact mode, determine if operand IDX of IN_RTX is interesting to dump, or (if in a trailing position) it can be omitted.
References GET_CODE, GET_RTX_FORMAT, m_compact, NULL, NULL_RTX, XEXP, and XSTR.
Referenced by print_rtx().
void rtx_writer::print_rtl | ( | const_rtx | rtx_first | ) |
External entry point for printing a chain of insns starting with RTX_FIRST. A blank line separates insns. If RTX_FIRST is not an insn, then it alone is printed, with no newline.
References as_a(), GET_CODE, m_outfile, NEXT_INSN(), print_rtx(), and print_rtx_head.
Referenced by print_rtl(), and print_simple_rtl().
void rtx_writer::print_rtl_single_with_indent | ( | const_rtx | x, |
int | ind ) |
Like print_rtl_single, except specify an indentation.
References alloca, m_indent, m_outfile, m_sawclose, print_rtx(), and print_rtx_head.
Referenced by print_rtl_single(), and print_rtx_function().
void rtx_writer::print_rtx | ( | const_rtx | in_rtx | ) |
Print IN_RTX onto m_outfile. This is the recursive part of printing.
References ADDR_SPACE_GENERIC_P, CONST_DOUBLE_AS_FLOAT_P, CONST_DOUBLE_REAL_VALUE, CONST_INT_P, CONST_POLY_INT_COEFFS, cwi_output_hex(), final_insns_dump_p, FLOAT_MODE_P, fputc(), gcc_unreachable, GET_CODE, GET_MODE, GET_MODE_NAME, GET_REG_NOTE_NAME, GET_RTX_LENGTH, GET_RTX_NAME, rtx_reuse_manager::has_reuse_id(), HOST_WIDE_INT_PRINT_DEC, i, INSN_CHAIN_CODE_P, INSN_UID(), is_a(), LABEL_GLOBAL_ENTRY, LABEL_KIND, LABEL_NORMAL, LABEL_NUSES, LABEL_STATIC_ENTRY, LABEL_WEAK_ENTRY, m_compact, m_in_call_function_usage, m_indent, m_outfile, m_rtx_reuse_manager, m_sawclose, m_simple, MEM_ADDR_SPACE, MEM_ALIAS_SET, MEM_ALIGN, MEM_EXPR, MEM_OFFSET, MEM_OFFSET_KNOWN_P, MEM_SIZE, MEM_SIZE_KNOWN_P, NUM_POLY_INT_COEFFS, NUM_RTX_CODE, operand_has_default_value_p(), PAT_VAR_LOCATION_DECL, PAT_VAR_LOCATION_LOC, PAT_VAR_LOCATION_STATUS, print_dec(), print_mem_expr(), print_poly_int(), print_rtx(), print_rtx_head, print_rtx_operand(), real_to_decimal(), real_to_hexadecimal(), REG_NOTE_MAX, RTX_FLAG, rtx_reuse_manager::seen_def_p(), rtx_reuse_manager::set_seen_def(), SIGNED, TREE_CODE, UNLIKELY, and VAR_INIT_STATUS_UNINITIALIZED.
Referenced by debug_rtx(), debug_slim(), print_inline_rtx(), print_param(), print_rtl(), print_rtl_single_with_indent(), print_rtx(), print_rtx_operand_code_0(), print_rtx_operand_code_e(), and print_rtx_operand_codes_E_and_V().
|
private |
Subroutine of print_rtx. Print operand IDX of IN_RTX.
References DEBUG_IMPLICIT_PTR_DECL, DEBUG_PARAMETER_REF_DECL, dump_addr(), gcc_unreachable, GET_CODE, GET_NOTE_INSN_NAME, GET_RTX_FORMAT, HOST_WIDE_INT_PRINT_DEC, HOST_WIDE_INT_PRINT_HEX, m_compact, m_outfile, m_sawclose, m_simple, print_mem_expr(), print_poly_int(), print_rtx_operand_code_0(), print_rtx_operand_code_e(), print_rtx_operand_code_i(), print_rtx_operand_code_L(), print_rtx_operand_code_r(), print_rtx_operand_code_u(), print_rtx_operand_codes_E_and_V(), SUBREG_BYTE, XBBDEF, XINT, XSTR, XTMPL, XTREE, and XWINT.
Referenced by print_rtx().
|
private |
Subroutine of print_rtx_operand for handling code '0'. 0 indicates a field for internal use that should not be printed. However there are various special cases, such as the third field of a NOTE, where it indicates that the field has several different valid contents.
References CSELIB_VAL_PTR, DEBUG_EXPR_TREE_DECL, DEBUG_TEMP_UID, dump_addr(), dump_flags, ENTRY_VALUE_EXP, expand_location(), fputc(), GET_CODE, cselib_val::hash, basic_block_def::index, INSN_UID(), JUMP_LABEL, JUMP_P, m_compact, m_indent, m_outfile, m_sawclose, NOTE_BASIC_BLOCK, NOTE_BLOCK, NOTE_CFI, NOTE_DELETED_LABEL_NAME, NOTE_EH_HANDLER, NOTE_KIND, NOTE_MARKER_LOCATION, NOTE_P, NOTE_VAR_LOCATION, NULL, output_cfi_directive(), print_node_brief(), print_rtx(), print_rtx_head, SYMBOL_REF_DECL, SYMBOL_REF_FLAGS, and cselib_val::uid.
Referenced by print_rtx_operand().
|
private |
Subroutine of print_rtx_operand for handling code 'e'. Also called by print_rtx_operand_code_u for handling code 'u' for LABEL_REFs when they don't reference a CODE_LABEL.
References CALL_P, INSN_P, m_in_call_function_usage, m_indent, m_outfile, m_sawclose, print_rtx(), print_rtx_head, and XEXP.
Referenced by print_rtx_operand(), and print_rtx_operand_code_u().
|
private |
Subroutine of print_rtx_operand for handling code 'i'.
References fputc(), GET_CODE, get_insn_name(), INSN_CODE, INSN_P, m_compact, m_outfile, m_sawclose, NOTE_KIND, NOTE_P, NULL, and XINT.
Referenced by print_rtx_operand().
|
private |
Subroutine of print_rtx_operand for handling code 'L'.
References as_a(), ASM_INPUT_SOURCE_LOCATION, ASM_OPERANDS_SOURCE_LOCATION, gcc_unreachable, GET_CODE, insn_discriminator(), INSN_HAS_LOCATION(), insn_location(), INSN_P, LOCATION_FILE, LOCATION_LINE, m_outfile, and UNKNOWN_LOCATION.
Referenced by print_rtx_operand().
|
private |
Subroutine of print_rtx_operand for handling code 'r'.
References FIRST_VIRTUAL_REGISTER, fputc(), gcc_assert, INSN_P, LAST_VIRTUAL_REGISTER, m_compact, m_outfile, ORIGINAL_REGNO, print_mem_expr(), print_poly_int(), REG_ATTRS, REG_EXPR, reg_names, REG_OFFSET, REGNO, VIRTUAL_CFA_REGNUM, VIRTUAL_INCOMING_ARGS_REGNUM, VIRTUAL_OUTGOING_ARGS_REGNUM, VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM, VIRTUAL_STACK_DYNAMIC_REGNUM, and VIRTUAL_STACK_VARS_REGNUM.
Referenced by print_rtx_operand().
|
private |
Subroutine of print_rtx_operand for handling code 'u'.
References BARRIER_P, GET_CODE, INSN_CHAIN_CODE_P, INSN_P, INSN_UID(), LABEL_P, m_compact, m_outfile, m_sawclose, NOTE_KIND, NOTE_P, NULL, print_rtx_operand_code_e(), and XEXP.
Referenced by print_rtx_operand().
|
private |
Subroutine of print_rtx_operand for handling codes 'E' and 'V'.
References CONST_VECTOR_DUPLICATE_P, CONST_VECTOR_NPATTERNS, CONST_VECTOR_STEPPED_P, GET_CODE, GET_MODE, GET_MODE_NUNITS(), m_indent, m_outfile, m_sawclose, MIN, NULL, print_rtx(), print_rtx_head, XVEC, XVECEXP, and XVECLEN.
Referenced by print_rtx_operand().
|
private |
|
private |
Referenced by print_rtx(), and print_rtx_operand_code_e().
|
private |
|
private |
Referenced by finish_directive(), print_rtl(), print_rtl_single_with_indent(), print_rtx(), print_rtx_operand(), print_rtx_operand_code_0(), print_rtx_operand_code_e(), print_rtx_operand_code_i(), print_rtx_operand_code_L(), print_rtx_operand_code_r(), print_rtx_operand_code_u(), and print_rtx_operand_codes_E_and_V().
|
private |
Referenced by print_rtx().
|
private |
|
private |
Referenced by print_rtx(), and print_rtx_operand().