GCC Middle and Back End API Reference
gimple-pretty-print.cc File Reference
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "dumpfile.h"
#include "backend.h"
#include "tree.h"
#include "gimple.h"
#include "gimple-predict.h"
#include "ssa.h"
#include "cgraph.h"
#include "gimple-pretty-print.h"
#include "value-range-pretty-print.h"
#include "internal-fn.h"
#include "tree-eh.h"
#include "gimple-iterator.h"
#include "tree-cfg.h"
#include "value-prof.h"
#include "trans-mem.h"
#include "cfganal.h"
#include "stringpool.h"
#include "attribs.h"
#include "asan.h"
#include "cfgloop.h"
#include "gimple-range.h"
Include dependency graph for gimple-pretty-print.cc:

Macros

#define INDENT(SPACE)    do { int i; for (i = 0; i < SPACE; i++) pp_space (buffer); } while (0)
 
#define GIMPLE_NIY   do_niy (buffer,gs)
 
#define DEF(X)   #X
 
#define DEF(X)   #X
 
#define DEF(X)   #X
 
#define DEF(X)   #X
 

Functions

static void do_niy (pretty_printer *buffer, const gimple *gs)
 
static void newline_and_indent (pretty_printer *buffer, int spc)
 
DEBUG_FUNCTION void debug_gimple_stmt (gimple *gs)
 
static const chardump_profile (profile_count &count)
 
static const chardump_probability (profile_probability probability)
 
static void dump_edge_probability (pretty_printer *buffer, edge e)
 
void print_gimple_stmt (FILE *file, gimple *g, int spc, dump_flags_t flags)
 
DEBUG_FUNCTION void debug (gimple &ref)
 
DEBUG_FUNCTION void debug (gimple *ptr)
 
void print_gimple_expr (FILE *file, gimple *g, int spc, dump_flags_t flags)
 
static void dump_gimple_seq (pretty_printer *buffer, gimple_seq seq, int spc, dump_flags_t flags)
 
void print_gimple_seq (FILE *file, gimple_seq seq, int spc, dump_flags_t flags)
 
DEBUG_FUNCTION void debug_gimple_seq (gimple_seq seq)
 
static void dump_gimple_fmt (pretty_printer *buffer, int spc, dump_flags_t flags, const char *fmt,...)
 
static void dump_unary_rhs (pretty_printer *buffer, const gassign *gs, int spc, dump_flags_t flags)
 
static void dump_binary_rhs (pretty_printer *buffer, const gassign *gs, int spc, dump_flags_t flags)
 
static void dump_ternary_rhs (pretty_printer *buffer, const gassign *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_assign (pretty_printer *buffer, const gassign *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_return (pretty_printer *buffer, const greturn *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_call_args (pretty_printer *buffer, const gcall *gs, dump_flags_t flags)
 
static void pp_points_to_solution (pretty_printer *buffer, const pt_solution *pt)
 
static void dump_gimple_call (pretty_printer *buffer, const gcall *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_switch (pretty_printer *buffer, const gswitch *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_cond (pretty_printer *buffer, const gcond *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_label (pretty_printer *buffer, const glabel *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_goto (pretty_printer *buffer, const ggoto *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_bind (pretty_printer *buffer, const gbind *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_try (pretty_printer *buffer, const gtry *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_catch (pretty_printer *buffer, const gcatch *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_eh_filter (pretty_printer *buffer, const geh_filter *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_eh_must_not_throw (pretty_printer *buffer, const geh_mnt *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_eh_else (pretty_printer *buffer, const geh_else *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_resx (pretty_printer *buffer, const gresx *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_eh_dispatch (pretty_printer *buffer, const geh_dispatch *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_debug (pretty_printer *buffer, const gdebug *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_for (pretty_printer *buffer, const gomp_for *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_continue (pretty_printer *buffer, const gomp_continue *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_single (pretty_printer *buffer, const gomp_single *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_taskgroup (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_masked (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_scope (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_target (pretty_printer *buffer, const gomp_target *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_teams (pretty_printer *buffer, const gomp_teams *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_sections (pretty_printer *buffer, const gomp_sections *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_block (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_critical (pretty_printer *buffer, const gomp_critical *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_ordered (pretty_printer *buffer, const gomp_ordered *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_scan (pretty_printer *buffer, const gomp_scan *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_return (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_assume (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_transaction (pretty_printer *buffer, const gtransaction *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_asm (pretty_printer *buffer, const gasm *gs, int spc, dump_flags_t flags)
 
static void dump_ssaname_info (pretty_printer *buffer, tree node, int spc)
 
void dump_ssaname_info_to_file (FILE *file, tree node, int spc)
 
static void dump_gimple_phi (pretty_printer *buffer, const gphi *phi, int spc, bool comment, dump_flags_t flags)
 
static void dump_gimple_omp_parallel (pretty_printer *buffer, const gomp_parallel *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_task (pretty_printer *buffer, const gomp_task *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_atomic_load (pretty_printer *buffer, const gomp_atomic_load *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_omp_atomic_store (pretty_printer *buffer, const gomp_atomic_store *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_mem_ops (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
void pp_gimple_stmt_1 (pretty_printer *buffer, const gimple *gs, int spc, dump_flags_t flags)
 
static void dump_gimple_bb_header (FILE *outf, basic_block bb, int indent, dump_flags_t flags)
 
static void dump_gimple_bb_footer (FILE *outf, basic_block bb, int indent, dump_flags_t flags)
 
static void dump_phi_nodes (pretty_printer *buffer, basic_block bb, int indent, dump_flags_t flags)
 
static void pp_cfg_jump (pretty_printer *buffer, edge e, dump_flags_t flags)
 
static void dump_implicit_edges (pretty_printer *buffer, basic_block bb, int indent, dump_flags_t flags)
 
static void gimple_dump_bb_buff (pretty_printer *buffer, basic_block bb, int indent, dump_flags_t flags)
 
void gimple_dump_bb (FILE *file, basic_block bb, int indent, dump_flags_t flags)
 
void gimple_dump_bb_for_graph (pretty_printer *pp, basic_block bb)
 

Macro Definition Documentation

◆ DEF [1/4]

#define DEF ( X)    #X

◆ DEF [2/4]

#define DEF ( X)    #X

◆ DEF [3/4]

#define DEF ( X)    #X

◆ DEF [4/4]

#define DEF ( X)    #X

◆ GIMPLE_NIY

#define GIMPLE_NIY   do_niy (buffer,gs)

Referenced by pp_gimple_stmt_1().

◆ INDENT

#define INDENT ( SPACE)     do { int i; for (i = 0; i < SPACE; i++) pp_space (buffer); } while (0)
Pretty formatting of GIMPLE statements and expressions.
   Copyright (C) 2001-2024 Free Software Foundation, Inc.
   Contributed by Aldy Hernandez <aldyh@redhat.com> and
   Diego Novillo <dnovillo@google.com>

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/>.   
Disable warnings about quoting issues in the pp_xxx calls below
that (intentionally) don't follow GCC diagnostic conventions.   

Referenced by dump_gimple_seq(), dump_implicit_edges(), dump_phi_nodes(), gimple_dump_bb_buff(), and newline_and_indent().

Function Documentation

◆ debug() [1/2]

◆ debug() [2/2]

DEBUG_FUNCTION void debug ( gimple * ptr)

References debug, and ggc_alloc().

◆ debug_gimple_seq()

DEBUG_FUNCTION void debug_gimple_seq ( gimple_seq seq)
Print the GIMPLE sequence SEQ on stderr.   

References ggc_alloc(), print_gimple_seq(), TDF_MEMSYMS, and TDF_VOPS.

◆ debug_gimple_stmt()

◆ do_niy()

static void do_niy ( pretty_printer * buffer,
const gimple * gs )
static
Try to print on BUFFER a default message for the unrecognized
gimple statement GS.   

References ggc_alloc(), gimple_code_name, and pp_printf().

◆ dump_binary_rhs()

static void dump_binary_rhs ( pretty_printer * buffer,
const gassign * gs,
int spc,
dump_flags_t flags )
static
Helper for dump_gimple_assign.  Print the binary RHS of the
assignment GS.  BUFFER, SPC and FLAGS are as in pp_gimple_stmt_1.   

References dump_generic_node(), gcc_fallthrough, get_tree_code_name(), ggc_alloc(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs_code(), op_code_prio(), op_prio(), op_symbol_code(), pp_character(), pp_greater, pp_left_paren, pp_right_paren, pp_space, pp_string(), and TDF_GIMPLE.

Referenced by dump_gimple_assign().

◆ dump_edge_probability()

static void dump_edge_probability ( pretty_printer * buffer,
edge e )
static
Dump E probability to BUFFER.   

References dump_probability(), and pp_scalar.

Referenced by dump_gimple_cond(), dump_gimple_switch(), and pp_cfg_jump().

◆ dump_gimple_asm()

static void dump_gimple_asm ( pretty_printer * buffer,
const gasm * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_assign()

◆ dump_gimple_assume()

static void dump_gimple_assume ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_bb_footer()

static void dump_gimple_bb_footer ( FILE * outf,
basic_block bb,
int indent,
dump_flags_t flags )
static
Dumps end of basic block BB to buffer BUFFER indented by INDENT
spaces.   

Referenced by gimple_dump_bb().

◆ dump_gimple_bb_header()

◆ dump_gimple_bind()

static void dump_gimple_bind ( pretty_printer * buffer,
const gbind * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_BIND tuple on the pretty_printer BUFFER, SPC
spaces of indent.  FLAGS specifies details to show in the dump (see
TDF_* in dumpfile.h).   

References DECL_CHAIN, dump_gimple_fmt(), dump_gimple_seq(), ggc_alloc(), gimple_bind_body(), gimple_bind_vars(), newline_and_indent(), pp_greater, pp_left_brace, pp_newline(), pp_right_brace, print_declaration(), TDF_RAW, and TDF_SLIM.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_call()

◆ dump_gimple_call_args()

◆ dump_gimple_catch()

static void dump_gimple_catch ( pretty_printer * buffer,
const gcatch * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_CATCH tuple on the pretty_printer BUFFER, SPC spaces of
indent.  FLAGS specifies details to show in the dump (see TDF_* in
dumpfile.h).   

References dump_gimple_fmt(), ggc_alloc(), gimple_catch_handler(), gimple_catch_types(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_cond()

◆ dump_gimple_debug()

static void dump_gimple_debug ( pretty_printer * buffer,
const gdebug * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_eh_dispatch()

static void dump_gimple_eh_dispatch ( pretty_printer * buffer,
const geh_dispatch * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_EH_DISPATCH tuple on the pretty_printer BUFFER.   

References dump_gimple_fmt(), ggc_alloc(), gimple_eh_dispatch_region(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_eh_else()

static void dump_gimple_eh_else ( pretty_printer * buffer,
const geh_else * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_EH_ELSE tuple on the pretty_printer BUFFER, SPC spaces of
indent.  FLAGS specifies details to show in the dump (see TDF_* in
dumpfile.h).   

References dump_gimple_fmt(), ggc_alloc(), gimple_eh_else_e_body(), gimple_eh_else_n_body(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_eh_filter()

static void dump_gimple_eh_filter ( pretty_printer * buffer,
const geh_filter * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_EH_FILTER tuple on the pretty_printer BUFFER, SPC spaces of
indent.  FLAGS specifies details to show in the dump (see TDF_* in
dumpfile.h).   

References dump_gimple_fmt(), ggc_alloc(), gimple_eh_filter_failure(), gimple_eh_filter_types(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_eh_must_not_throw()

static void dump_gimple_eh_must_not_throw ( pretty_printer * buffer,
const geh_mnt * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_EH_MUST_NOT_THROW tuple.   

References dump_gimple_fmt(), ggc_alloc(), gimple_eh_must_not_throw_fndecl(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_fmt()

static void dump_gimple_fmt ( pretty_printer * buffer,
int spc,
dump_flags_t flags,
const char * fmt,
... )
static
A simple helper to pretty-print some of the gimple tuples in the printf
style. The format modifiers are preceded by '%' and are:
  'G' - outputs a string corresponding to the code of the given gimple,
  'S' - outputs a gimple_seq with indent of spc + 2,
  'T' - outputs the tree t,
  'd' - outputs an int as a decimal,
  's' - outputs a string,
  'n' - outputs a newline,
  'x' - outputs an int as hexadecimal,
  '+' - increases indent by 2 then outputs a newline,
  '-' - decreases indent by 2 then outputs a newline.    

References dump_generic_node(), dump_gimple_seq(), g, gcc_unreachable, ggc_alloc(), gimple_code_name, newline_and_indent(), NULL_TREE, pp_character(), pp_decimal_int, pp_newline(), pp_scalar, and pp_string().

Referenced by dump_gimple_asm(), dump_gimple_assign(), dump_gimple_assume(), dump_gimple_bind(), dump_gimple_call(), dump_gimple_catch(), dump_gimple_cond(), dump_gimple_debug(), dump_gimple_eh_dispatch(), dump_gimple_eh_else(), dump_gimple_eh_filter(), dump_gimple_eh_must_not_throw(), dump_gimple_goto(), dump_gimple_label(), dump_gimple_omp_atomic_load(), dump_gimple_omp_atomic_store(), dump_gimple_omp_block(), dump_gimple_omp_continue(), dump_gimple_omp_critical(), dump_gimple_omp_for(), dump_gimple_omp_masked(), dump_gimple_omp_ordered(), dump_gimple_omp_parallel(), dump_gimple_omp_return(), dump_gimple_omp_scan(), dump_gimple_omp_scope(), dump_gimple_omp_sections(), dump_gimple_omp_single(), dump_gimple_omp_target(), dump_gimple_omp_task(), dump_gimple_omp_taskgroup(), dump_gimple_omp_teams(), dump_gimple_phi(), dump_gimple_resx(), dump_gimple_return(), dump_gimple_switch(), dump_gimple_transaction(), and dump_gimple_try().

◆ dump_gimple_goto()

static void dump_gimple_goto ( pretty_printer * buffer,
const ggoto * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_GOTO tuple on the pretty_printer BUFFER, SPC
spaces of indent.  FLAGS specifies details to show in the dump (see
TDF_* in dumpfile.h).   

References dump_gimple_fmt(), ggc_alloc(), gimple_goto_dest(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_label()

static void dump_gimple_label ( pretty_printer * buffer,
const glabel * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_LABEL tuple on the pretty_printer BUFFER, SPC
spaces of indent.  FLAGS specifies details to show in the dump (see
TDF_* in dumpfils.h).   

References DECL_NONLOCAL, dump_generic_node(), dump_gimple_fmt(), EH_LANDING_PAD_NR, ggc_alloc(), gimple_label_label(), pp_colon, pp_printf(), pp_string(), TDF_EH, TDF_GIMPLE, and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_mem_ops()

static void dump_gimple_mem_ops ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
static
Dump all the memory operands for statement GS.  BUFFER, SPC and
FLAGS are as in pp_gimple_stmt_1.   

References dump_generic_node(), ggc_alloc(), gimple_vdef(), gimple_vuse(), newline_and_indent(), NULL_TREE, pp_greater, and pp_string().

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_omp_atomic_load()

static void dump_gimple_omp_atomic_load ( pretty_printer * buffer,
const gomp_atomic_load * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_OMP_ATOMIC_LOAD tuple on the pretty_printer BUFFER, SPC
spaces of indent.  FLAGS specifies details to show in the dump (see TDF_*
in dumpfile.h).   

References dump_generic_node(), dump_gimple_fmt(), dump_omp_atomic_memory_order(), ggc_alloc(), gimple_omp_atomic_load_lhs(), gimple_omp_atomic_load_rhs(), gimple_omp_atomic_memory_order(), gimple_omp_atomic_need_value_p(), gimple_omp_atomic_weak_p(), newline_and_indent(), pp_equal, pp_space, pp_star, pp_string(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_omp_atomic_store()

static void dump_gimple_omp_atomic_store ( pretty_printer * buffer,
const gomp_atomic_store * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_OMP_ATOMIC_STORE tuple on the pretty_printer BUFFER, SPC
spaces of indent.  FLAGS specifies details to show in the dump (see TDF_*
in dumpfile.h).   

References dump_generic_node(), dump_gimple_fmt(), dump_omp_atomic_memory_order(), ggc_alloc(), gimple_omp_atomic_memory_order(), gimple_omp_atomic_need_value_p(), gimple_omp_atomic_store_val(), gimple_omp_atomic_weak_p(), pp_left_paren, pp_right_paren, pp_space, pp_string(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_omp_block()

static void dump_gimple_omp_block ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_OMP_{MASTER,ORDERED,SECTION,STRUCTURED_BLOCK} tuple on the
pretty_printer BUFFER.   

References dump_gimple_fmt(), dump_gimple_seq(), gcc_unreachable, ggc_alloc(), gimple_omp_body(), gimple_seq_empty_p(), newline_and_indent(), pp_left_brace, pp_newline(), pp_right_brace, pp_string(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_omp_continue()

static void dump_gimple_omp_continue ( pretty_printer * buffer,
const gomp_continue * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_omp_critical()

◆ dump_gimple_omp_for()

◆ dump_gimple_omp_masked()

static void dump_gimple_omp_masked ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_omp_ordered()

static void dump_gimple_omp_ordered ( pretty_printer * buffer,
const gomp_ordered * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_omp_parallel()

static void dump_gimple_omp_parallel ( pretty_printer * buffer,
const gomp_parallel * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_OMP_PARALLEL tuple on the pretty_printer BUFFER, SPC spaces
of indent.  FLAGS specifies details to show in the dump (see TDF_* in
dumpfile.h).   

References dump_generic_node(), dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), ggc_alloc(), gimple_omp_body(), gimple_omp_parallel_child_fn(), gimple_omp_parallel_clauses(), gimple_omp_parallel_data_arg(), gimple_seq_first_stmt(), newline_and_indent(), pp_left_brace, pp_newline(), pp_right_brace, pp_string(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_omp_return()

static void dump_gimple_omp_return ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_OMP_RETURN tuple on the pretty_printer BUFFER.   

References dump_generic_node(), dump_gimple_fmt(), ggc_alloc(), gimple_omp_return_lhs(), gimple_omp_return_nowait_p(), pp_character(), pp_string(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_omp_scan()

static void dump_gimple_omp_scan ( pretty_printer * buffer,
const gomp_scan * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_omp_scope()

static void dump_gimple_omp_scope ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_omp_sections()

◆ dump_gimple_omp_single()

static void dump_gimple_omp_single ( pretty_printer * buffer,
const gomp_single * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_omp_target()

◆ dump_gimple_omp_task()

◆ dump_gimple_omp_taskgroup()

static void dump_gimple_omp_taskgroup ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_omp_teams()

static void dump_gimple_omp_teams ( pretty_printer * buffer,
const gomp_teams * gs,
int spc,
dump_flags_t flags )
static

◆ dump_gimple_phi()

static void dump_gimple_phi ( pretty_printer * buffer,
const gphi * phi,
int spc,
bool comment,
dump_flags_t flags )
static
Dump a PHI node PHI.  BUFFER, SPC and FLAGS are as in pp_gimple_stmt_1.
The caller is responsible for calling pp_flush on BUFFER to finalize
pretty printer.  If COMMENT is true, print this after #.   

References dump_generic_node(), dump_gimple_fmt(), dump_location(), dump_ssaname_info(), ggc_alloc(), gimple_phi_arg_def(), gimple_phi_arg_edge(), gimple_phi_arg_has_location(), gimple_phi_arg_location(), gimple_phi_num_args(), gimple_phi_result(), i, basic_block_def::index, pp_decimal_int, pp_greater, pp_left_paren, pp_right_paren, pp_string(), TDF_ALIAS, TDF_GIMPLE, TDF_LINENO, and TDF_RAW.

Referenced by dump_phi_nodes(), and pp_gimple_stmt_1().

◆ dump_gimple_resx()

static void dump_gimple_resx ( pretty_printer * buffer,
const gresx * gs,
int spc,
dump_flags_t flags )
static
Dump a GIMPLE_RESX tuple on the pretty_printer BUFFER, SPC spaces of
indent.  FLAGS specifies details to show in the dump (see TDF_* in
dumpfile.h).   

References dump_gimple_fmt(), ggc_alloc(), gimple_resx_region(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_return()

static void dump_gimple_return ( pretty_printer * buffer,
const greturn * gs,
int spc,
dump_flags_t flags )
static
Dump the return statement GS.  BUFFER, SPC and FLAGS are as in
pp_gimple_stmt_1.   

References dump_generic_node(), dump_gimple_fmt(), ggc_alloc(), gimple_return_retval(), pp_semicolon, pp_space, pp_string(), and TDF_RAW.

Referenced by pp_gimple_stmt_1().

◆ dump_gimple_seq()

◆ dump_gimple_switch()

◆ dump_gimple_transaction()

◆ dump_gimple_try()

static void dump_gimple_try ( pretty_printer * buffer,
const gtry * gs,
int spc,
dump_flags_t flags )
static

◆ dump_implicit_edges()

static void dump_implicit_edges ( pretty_printer * buffer,
basic_block bb,
int indent,
dump_flags_t flags )
static

◆ dump_phi_nodes()

static void dump_phi_nodes ( pretty_printer * buffer,
basic_block bb,
int indent,
dump_flags_t flags )
static
Dump PHI nodes of basic block BB to BUFFER with details described
by FLAGS and indented by INDENT spaces.   

References dump_gimple_phi(), gimple_phi_result(), gsi_end_p(), gsi_next(), gsi_start_phis(), i, INDENT, pp_newline(), TDF_GIMPLE, TDF_VOPS, and virtual_operand_p().

Referenced by gimple_dump_bb_buff().

◆ dump_probability()

static const char * dump_probability ( profile_probability probability)
static
Return formatted string of a VALUE probability
(biased by REG_BR_PROB_BASE).  Returned string is allocated
by xstrdup_for_dump.   

References free(), ggc_alloc(), profile_probability::initialized_p(), REG_BR_PROB_BASE, profile_probability::to_reg_br_prob_base(), and xstrdup_for_dump().

Referenced by dump_edge_probability().

◆ dump_profile()

static const char * dump_profile ( profile_count & count)
static
Return formatted string of a VALUE probability
(biased by REG_BR_PROB_BASE).  Returned string is allocated
by xstrdup_for_dump.   

References count, free(), ggc_alloc(), NULL, PRId64, and xstrdup_for_dump().

Referenced by dump_gimple_bb_header().

◆ dump_ssaname_info()

◆ dump_ssaname_info_to_file()

void dump_ssaname_info_to_file ( FILE * file,
tree node,
int spc )
As dump_ssaname_info, but dump to FILE.   

References pretty_printer::buffer, dump_ssaname_info(), ggc_alloc(), pp_flush(), pp_needs_newline, and output_buffer::stream.

Referenced by dump_default_def().

◆ dump_ternary_rhs()

static void dump_ternary_rhs ( pretty_printer * buffer,
const gassign * gs,
int spc,
dump_flags_t flags )
static
Helper for dump_gimple_assign.  Print the ternary RHS of the
assignment GS.  BUFFER, SPC and FLAGS are as in pp_gimple_stmt_1.   

References dump_generic_node(), gcc_unreachable, get_tree_code_name(), ggc_alloc(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs3(), gimple_assign_rhs_code(), INTEGRAL_TYPE_P, pp_character(), pp_decimal_int, pp_greater, pp_right_paren, pp_string(), TDF_GIMPLE, TDF_SLIM, TREE_TYPE, and TYPE_PRECISION.

Referenced by dump_gimple_assign().

◆ dump_unary_rhs()

static void dump_unary_rhs ( pretty_printer * buffer,
const gassign * gs,
int spc,
dump_flags_t flags )
static

◆ gimple_dump_bb()

void gimple_dump_bb ( FILE * file,
basic_block bb,
int indent,
dump_flags_t flags )
Dumps basic block BB to FILE with details described by FLAGS and
indented by INDENT spaces.   

References pretty_printer::buffer, dump_gimple_bb_footer(), dump_gimple_bb_header(), gimple_dump_bb_buff(), basic_block_def::index, NUM_FIXED_BLOCKS, pp_needs_newline, and output_buffer::stream.

◆ gimple_dump_bb_buff()

static void gimple_dump_bb_buff ( pretty_printer * buffer,
basic_block bb,
int indent,
dump_flags_t flags )
static

◆ gimple_dump_bb_for_graph()

void gimple_dump_bb_for_graph ( pretty_printer * pp,
basic_block bb )
Dumps basic block BB to pretty-printer PP with default dump flags and
no indentation, for use as a label of a DOT graph record-node.
??? Should just use gimple_dump_bb_buff here, except that value profiling
histogram dumping doesn't know about pretty-printers.   

References dump_flags, dump_implicit_edges(), gimple_phi_result(), gsi_end_p(), gsi_next(), gsi_start_bb(), gsi_start_phis(), gsi_stmt(), basic_block_def::index, pp_bar, pp_gimple_stmt_1(), pp_newline(), pp_printf(), pp_string(), pp_write_text_as_dot_label_to_stream(), pp_write_text_to_stream(), TDF_VOPS, and virtual_operand_p().

◆ newline_and_indent()

◆ pp_cfg_jump()

static void pp_cfg_jump ( pretty_printer * buffer,
edge e,
dump_flags_t flags )
static
Dump jump to basic block BB that is represented implicitly in the cfg
to BUFFER.   

References dump_edge_probability(), pp_decimal_int, pp_greater, pp_semicolon, pp_string(), profile_quality_as_string(), and TDF_GIMPLE.

Referenced by dump_implicit_edges().

◆ pp_gimple_stmt_1()

void pp_gimple_stmt_1 ( pretty_printer * buffer,
const gimple * gs,
int spc,
dump_flags_t flags )
Print the gimple statement GS on the pretty printer BUFFER, SPC
spaces of indent.  FLAGS specifies details to show in the dump (see
TDF_* in dumpfile.h).  The caller is responsible for calling
pp_flush on BUFFER to finalize the pretty printer.   

References dump_gimple_asm(), dump_gimple_assign(), dump_gimple_assume(), dump_gimple_bind(), dump_gimple_call(), dump_gimple_catch(), dump_gimple_cond(), dump_gimple_debug(), dump_gimple_eh_dispatch(), dump_gimple_eh_else(), dump_gimple_eh_filter(), dump_gimple_eh_must_not_throw(), dump_gimple_goto(), dump_gimple_label(), dump_gimple_mem_ops(), dump_gimple_omp_atomic_load(), dump_gimple_omp_atomic_store(), dump_gimple_omp_block(), dump_gimple_omp_continue(), dump_gimple_omp_critical(), dump_gimple_omp_for(), dump_gimple_omp_masked(), dump_gimple_omp_ordered(), dump_gimple_omp_parallel(), dump_gimple_omp_return(), dump_gimple_omp_scan(), dump_gimple_omp_scope(), dump_gimple_omp_sections(), dump_gimple_omp_single(), dump_gimple_omp_target(), dump_gimple_omp_task(), dump_gimple_omp_taskgroup(), dump_gimple_omp_teams(), dump_gimple_phi(), dump_gimple_resx(), dump_gimple_return(), dump_gimple_switch(), dump_gimple_transaction(), dump_gimple_try(), dump_location(), dump_ssaname_info(), ggc_alloc(), gimple_get_lhs(), gimple_has_lhs(), gimple_has_location(), gimple_has_mem_ops(), gimple_location(), GIMPLE_NIY, gimple_predict_outcome(), gimple_predict_predictor(), lookup_stmt_eh_lp(), pp_printf(), pp_string(), predictor_name(), TDF_ALIAS, TDF_EH, TDF_LINENO, TDF_MEMSYMS, TDF_STMTADDR, and TDF_VOPS.

Referenced by dot_rdg_1(), dump_gimple_seq(), gimple_dump_bb_buff(), gimple_dump_bb_for_graph(), make_item_for_dump_gimple_expr(), make_item_for_dump_gimple_stmt(), print_gimple_expr(), print_gimple_stmt(), and print_node().

◆ pp_points_to_solution()

◆ print_gimple_expr()

◆ print_gimple_seq()

void print_gimple_seq ( FILE * file,
gimple_seq seq,
int spc,
dump_flags_t flags )
Print GIMPLE sequence SEQ to FILE using SPC indentation spaces and
FLAGS as in pp_gimple_stmt_1.   

References pretty_printer::buffer, dump_gimple_seq(), ggc_alloc(), pp_needs_newline, pp_newline_and_flush(), and output_buffer::stream.

Referenced by debug_gimple_seq(), dump_function_to_file(), gimple_simplify_phiopt(), and replace_stmt_with_simplification().

◆ print_gimple_stmt()

void print_gimple_stmt ( FILE * file,
gimple * g,
int spc,
dump_flags_t flags )
Print GIMPLE statement G to FILE using SPC indentation spaces and
FLAGS as in pp_gimple_stmt_1.   

References pretty_printer::buffer, g, ggc_alloc(), pp_gimple_stmt_1(), pp_needs_newline, pp_newline_and_flush(), and output_buffer::stream.

Referenced by add_exit_phi(), add_ssa_edge(), adjust_iv_update_pos(), autofdo::afdo_indirect_call(), all_phi_incrs_profitable_1(), analyze_evolution_in_loop(), analyze_function_body(), analyze_initial_condition(), ipcp_modif_dom_walker::before_dom_children(), substitute_and_fold_dom_walker::before_dom_children(), bitfields_to_lower_p(), break_up_subtract(), build_access_from_call_arg(), build_new_reduction(), call_may_clobber_ref_p_1(), check_all_va_list_escapes(), check_stmt(), check_stmt_for_type_change(), uninit_analysis::collect_phi_def_edges(), compute_affine_dependence(), compute_invariantness(), gori_compute::compute_operand1_range(), gori_compute::compute_operand2_range(), gori_compute::compute_operand_range(), compute_trims(), cond_store_replacement(), convert_if_conditions_to_switch(), convert_mult_to_fma(), convert_mult_to_fma_1(), convert_scalar_cond_reduction(), copy_prop_visit_cond_stmt(), create_add_on_incoming_edge(), create_expression_by_pieces(), create_phi_basis_1(), debug(), debug_gimple_stmt(), delete_dead_or_redundant_assignment(), delete_dead_or_redundant_call(), dse_optimize_stmt(), phi_group::dump(), predicate::dump(), dump_candidate(), dump_data_reference(), dump_dref(), dump_immediate_uses_for(), dump_oacc_loop(), dump_oacc_loop_part(), dump_rdg_vertex(), dump_reduction(), dump_replaceable_exprs(), dump_tm_memopt_transform(), dump_use(), dynamic_object_sizes_execute_one(), eliminate_dom_walker::eliminate_cleanup(), eliminate_dom_walker::eliminate_insert(), eliminate_dom_walker::eliminate_stmt(), eliminate_tail_call(), eliminate_unnecessary_stmts(), execute_early_expand_coro_ifns(), execute_split_functions(), final_value_replacement_loop(), find_doloop_use(), find_uninit_use(), gather_mem_refs_stmt(), ipa_polymorphic_call_context::get_dynamic_type(), get_loop_exit_condition(), get_string_length(), gimple_find_values_to_profile(), gimple_fold_call(), gimple_value_profile_transformations(), gimple_verify_flow_info(), strlen_pass::handle_builtin_strcat(), strlen_pass::handle_builtin_strchr(), strlen_pass::handle_builtin_strcpy(), strlen_pass::handle_builtin_strlen(), strlen_pass::handle_integral_assign(), hoist_adjacent_loads(), if_convertible_gimple_assign_stmt_p(), if_convertible_phi_p(), if_convertible_stmt_p(), ifcvt_local_dce(), initialize_constant_pool_replacements(), insert_initializers(), insert_into_preds_of_block(), introduce_cast_before_cand(), ipa_make_edge_direct_to_target(), ipa_print_node_jump_functions(), simplify_using_ranges::legacy_fold_cond(), linearize_expr(), linearize_expr_tree(), lower_bitfield(), mark_operand_necessary(), mark_stmt_necessary(), mark_virtual_phi_result_for_renaming(), maybe_dump_rtl_for_gimple_stmt(), maybe_invalidate(), maybe_optimize_arith_overflow(), maybe_remove_writeonly_store(), ipa_param_adjustments::modify_call(), move_computations_worker(), move_stmt(), oacc_entry_exit_ok_1(), oacc_entry_exit_single_gang(), object_sizes_execute(), optimize_memcpy(), optimize_recip_sqrt(), dom_opt_dom_walker::optimize_stmt(), optimize_tail_call(), optimize_va_list_gpr_fpr_size(), gori_compute::outgoing_edge_range_p(), output_bb(), phiprop_insert_phi(), predicate_scalar_phi(), gimple_ranger::prefill_stmt_dependencies(), process_bb(), propagate_necessity(), dom_ranger::range_of_expr(), gimple_ranger::range_of_expr(), gimple_ranger::range_of_stmt(), dom_ranger::range_of_stmt(), record_estimate(), record_modified(), record_nonwrapping_iv(), cgraph_edge::redirect_call_stmt_to_callee(), reduce_vector_comparison_to_scalar_comparison(), ref_conflicts_with_region(), ref_maybe_used_by_call_p_1(), relation_oracle::register_stmt(), remove_dead_phis(), remove_dead_stmt(), remove_exits_and_undefined_stmts(), remove_gimple_phi_args(), remove_redundant_iv_tests(), reorder_operands(), replace_mult_candidate(), replace_one_candidate(), substitute_and_fold_engine::replace_phi_args_in(), replace_refs(), replace_stmt_with_simplification(), return_different_stmts_1(), rewrite_expr_tree(), rewrite_expr_tree_parallel(), rewrite_stmt(), rewrite_to_defined_overflow(), rewrite_trees(), rewrite_update_stmt(), rewrite_use_compare(), sanopt_optimize_walker(), should_duplicate_loop_header_p(), simple_dce_from_worklist(), simplify_using_ranges::simplify_compare_assign_using_ranges_1(), simplify_using_ranges::simplify_cond_using_ranges_1(), sink_code_in_bb(), split_at_bb_p(), sra_modify_assign(), ssa_propagation_engine::ssa_propagate(), stmt_kills_ref_p(), substitute_and_fold_engine::substitute_and_fold(), transform_stmt_to_copy(), transform_stmt_to_multiply(), tree_estimate_loop_size(), tree_ssa_iv_optimize_loop(), try_create_reduction_list(), undistribute_bitref_for_vector(), autofdo::autofdo_source_profile::update_inlined_ind_target(), verify_def(), verify_imm_links(), verify_live_on_entry(), verify_phi_args(), verify_ssa(), verify_use(), verify_vssa(), ccp_propagate::visit_phi(), copy_prop::visit_phi(), ccp_propagate::visit_stmt(), copy_prop::visit_stmt(), visit_stmt(), vn_reference_lookup_3(), walk_polymorphic_call_targets(), and warn_uninitialized_phi().