GCC Middle and Back End API Reference
print-rtl.c File Reference

Functions

static void print_rtx (const_rtx)
void print_mem_expr ()
static void print_rtx ()
void print_inline_rtx ()
DEBUG_FUNCTION void debug_rtx ()
DEBUG_FUNCTION void debug ()
DEBUG_FUNCTION void debug_rtx_list ()
DEBUG_FUNCTION void debug_rtx_range ()
DEBUG_FUNCTION const_rtx debug_rtx_find ()
void print_rtl ()
int print_rtl_single ()
int print_rtl_single_with_indent ()
void print_simple_rtl ()

Variables

static FILE * outfile
static int sawclose = 0
static int indent
const char * print_rtx_head = ""
int flag_dump_unnumbered = 0
int flag_dump_unnumbered_links = 0
int flag_simple = 0
DEBUG_VARIABLE int debug_rtx_count = 0

Function Documentation

DEBUG_FUNCTION void debug ( )
   Dump rtx REF.  

References count.

DEBUG_FUNCTION void debug_rtx ( )
   Call this function from the debugger to see what X looks like.  

Referenced by debug_rtx_list(), and find_auto_inc().

DEBUG_FUNCTION const_rtx debug_rtx_find ( )
   Call this function to search an rtx list to find one with insn uid UID,
   and then call debug_rtx_list to print it, using DEBUG_RTX_COUNT.
   The found insn is returned to enable further debugging analysis.  

References print_rtx_head.

DEBUG_FUNCTION void debug_rtx_list ( )
   Call this function to print list from X on.

   N is a count of the rtx's to print. Positive values print from the specified
   rtx on.  Negative values print a window around the rtx.
   EG: -5 prints 2 rtx's on either side (in addition to the specified rtx).  
     If we are printing a window, back up to the start.  

References debug_rtx().

DEBUG_FUNCTION void debug_rtx_range ( )
   Call this function to print an rtx list from START to END inclusive.  
void print_inline_rtx ( )
   Print an rtx on the current line of FILE.  Initially indent IND
   characters.  

Referenced by cselib_lookup_mem(), cselib_process_insn(), main(), and unsuitable_loc().

void print_mem_expr ( )

References sawclose.

void print_rtl ( )
   External entry point for printing a chain of insns
   starting with RTX_FIRST onto file OUTF.
   A blank line separates insns.

   If RTX_FIRST is not an insn, then it alone is printed, with no newline.  

Referenced by df_word_lr_transfer_function(), free_ldst_entry(), print_rtl_single(), and record_iv().

int print_rtl_single ( )
   Like print_rtx, except specify a file.  
   Return nonzero if we actually printed anything.  

References flag_simple, and print_rtl().

Referenced by add_removable_extension(), discover_loops(), doloop_register_get(), find_removable_extensions(), free_ddg(), get_ebb_head_tail(), print_ddg_edge(), and record_entry_value().

int print_rtl_single_with_indent ( )
   Like print_rtl_single, except specify a file and indentation.  
static void print_rtx ( const_rtx  )
static
static void print_rtx ( )
static
   Print IN_RTX onto OUTFILE.  This is the recursive part of printing.  
     Print name of expression code.  
         Print REG_NOTE names for EXPR_LIST and INSN_LIST.  
         For other rtl, print the mode if it's not VOID.  
     Get the format string and skip the first elements if we have handled
     them already.  
           0 indicates a field for internal use that should not be printed.
           An exception is the third field of a NOTE, where it indicates
           that the field has several different valid contents.  
               Output the JUMP_LABEL reference.  
             Put REG_NOTES on their own line.  
                Pretty-print insn locations.  Ignore scoping as it is mostly
                redundant with line number information and do not print anything
                when there is no location information available.  
               This field is only used for NOTE_INSN_DELETED_LABEL, and
               other times often contains garbage from INSN->NOTE death.  
         Print NOTE_INSN names rather than integer codes.  
void print_simple_rtl ( )
   Like print_rtl except without all the detail; for example,
   if RTX is a CONST_INT then print in decimal format.  

Referenced by insert_rtx_to_part_on_edge().


Variable Documentation

DEBUG_VARIABLE int debug_rtx_count = 0
   Count of rtx's to print with debug_rtx_list.
   This global exists because gdb user defined commands have no arguments.  
int flag_dump_unnumbered = 0
   These are defined from the .opt file when not used in generator
   programs.  
   Nonzero means suppress output of instruction numbers
   in debugging dumps.
   This must be defined here so that programs like gencodes can be linked.  

Referenced by leaf_renumber_regs().

int flag_dump_unnumbered_links = 0
   Nonzero means suppress output of instruction numbers for previous
   and next insns in debugging dumps.
   This must be defined here so that programs like gencodes can be linked.  
int flag_simple = 0
   Nonzero means use simplified format without flags, modes, etc.  

Referenced by print_rtl_single().

FILE* outfile
static
@verbatim 

Print RTL for GCC. Copyright (C) 1987-2013 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see http://www.gnu.org/licenses/.

   This file is compiled twice: once for the generator programs,
   once for the compiler.  
   These headers all define things which are not available in
   generator programs.  
const char* print_rtx_head = ""
   String printed at beginning of each RTL when it is dumped.
   This string is set to ASM_COMMENT_START when the RTL is dumped in
   the assembly output file.  

Referenced by debug_rtx_find().

int sawclose = 0
static

Referenced by print_mem_expr().