GCC Middle and Back End API Reference
rtx_writer Class Reference

#include <print-rtl.h>

Collaboration diagram for rtx_writer:

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_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

FILEm_outfile
 
int m_indent
 
bool m_sawclose
 
bool m_in_call_function_usage
 
bool m_simple
 
bool m_compact
 
rtx_reuse_managerm_rtx_reuse_manager
 

Detailed Description

A class for writing rtx to a FILE *.   

Constructor & Destructor Documentation

◆ rtx_writer()

rtx_writer::rtx_writer ( FILE * outf,
int ind,
bool simple,
bool compact,
rtx_reuse_manager * reuse_manager )
Constructor for rtx_writer.   

Member Function Documentation

◆ finish_directive()

void rtx_writer::finish_directive ( )
Emit a closing parenthesis and newline.   

References ggc_alloc(), m_outfile, and m_sawclose.

◆ operand_has_default_value_p()

bool rtx_writer::operand_has_default_value_p ( const_rtx in_rtx,
int idx )
private
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, ggc_alloc(), m_compact, NULL, NULL_RTX, XEXP, and XSTR.

Referenced by print_rtx().

◆ print_rtl()

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 GET_CODE, ggc_alloc(), m_outfile, NEXT_INSN(), print_rtx(), and print_rtx_head.

◆ print_rtl_single_with_indent()

void rtx_writer::print_rtl_single_with_indent ( const_rtx x,
int ind )
Like print_rtl_single, except specify an indentation.   

References alloca, ggc_alloc(), m_indent, m_outfile, m_sawclose, print_rtx(), and print_rtx_head.

◆ print_rtx()

◆ print_rtx_operand()

◆ print_rtx_operand_code_0()

void rtx_writer::print_rtx_operand_code_0 ( const_rtx in_rtx,
int idx )
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, ggc_alloc(), 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().

◆ print_rtx_operand_code_e()

void rtx_writer::print_rtx_operand_code_e ( const_rtx in_rtx,
int idx )
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, ggc_alloc(), 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().

◆ print_rtx_operand_code_i()

void rtx_writer::print_rtx_operand_code_i ( const_rtx in_rtx,
int idx )
private

◆ print_rtx_operand_code_r()

◆ print_rtx_operand_code_u()

void rtx_writer::print_rtx_operand_code_u ( const_rtx in_rtx,
int idx )
private
Subroutine of print_rtx_operand for handling code 'u'.   

References BARRIER_P, GET_CODE, ggc_alloc(), 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().

◆ print_rtx_operand_codes_E_and_V()

void rtx_writer::print_rtx_operand_codes_E_and_V ( const_rtx in_rtx,
int idx )
private

Field Documentation

◆ m_compact

◆ m_in_call_function_usage

bool rtx_writer::m_in_call_function_usage
private

◆ m_indent

◆ m_outfile

◆ m_rtx_reuse_manager

rtx_reuse_manager* rtx_writer::m_rtx_reuse_manager
private

Referenced by print_rtx().

◆ m_sawclose

◆ m_simple

bool rtx_writer::m_simple
private

Referenced by print_rtx(), and print_rtx_operand().


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