GCC Middle and Back End API 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"
Macros | |
#define | INDENT(SPACE) |
#define | GIMPLE_NIY do_niy (pp,gs) |
#define | DEF(X) |
#define | DEF(X) |
#define | DEF(X) |
#define | DEF(X) |
#define DEF | ( | X | ) |
#define DEF | ( | X | ) |
#define DEF | ( | X | ) |
#define DEF | ( | X | ) |
#define GIMPLE_NIY do_niy (pp,gs) |
Referenced by pp_gimple_stmt_1().
#define INDENT | ( | SPACE | ) |
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().
DEBUG_FUNCTION void debug | ( | gimple & | ref | ) |
References print_gimple_stmt(), and TDF_NONE.
DEBUG_FUNCTION void debug | ( | gimple * | ptr | ) |
References debug.
DEBUG_FUNCTION void debug_gimple_seq | ( | gimple_seq | seq | ) |
Print the GIMPLE sequence SEQ on stderr.
References print_gimple_seq(), TDF_MEMSYMS, and TDF_VOPS.
DEBUG_FUNCTION void debug_gimple_stmt | ( | gimple * | gs | ) |
Print the GIMPLE statement GS on stderr.
References print_gimple_stmt(), TDF_MEMSYMS, and TDF_VOPS.
Referenced by cgraph_debug_gimple_stmt(), update_ssa(), verify_eh_throw_stmt_node(), verify_gimple_in_cfg(), verify_gimple_in_seq_2(), verify_histograms(), and visit_hist().
|
static |
Try to print on PP a default message for the unrecognized gimple statement GS.
References gimple_code_name, and pp_printf().
|
static |
Helper for dump_gimple_assign. Print the binary RHS of the assignment GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References dump_generic_node(), gcc_fallthrough, get_tree_code_name(), 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().
|
static |
Dump E probability to PP.
References dump_probability(), and pp_scalar.
Referenced by dump_gimple_cond(), dump_gimple_switch(), and pp_cfg_jump().
|
static |
Dump a GIMPLE_ASM tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References dump_generic_node(), dump_gimple_fmt(), fields, gcc_unreachable, gimple_asm_clobber_op(), gimple_asm_inline_p(), gimple_asm_input_op(), gimple_asm_label_op(), gimple_asm_nclobbers(), gimple_asm_ninputs(), gimple_asm_nlabels(), gimple_asm_noutputs(), gimple_asm_output_op(), gimple_asm_string(), gimple_asm_volatile_p(), i, newline_and_indent(), pp_greater, pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump the gimple assignment GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References dump_binary_rhs(), dump_generic_node(), dump_gimple_fmt(), dump_ternary_rhs(), dump_unary_rhs(), gcc_unreachable, get_tree_code_name(), gimple_assign_lhs(), gimple_assign_nontemporal_move_p(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs3(), gimple_assign_rhs_class(), gimple_assign_rhs_code(), gimple_has_volatile_ops(), gimple_num_ops(), GIMPLE_SINGLE_RHS, NULL, pp_equal, pp_semicolon, pp_space, pp_string(), TDF_GIMPLE, TDF_GIMPLE_VAL, TDF_RAW, and TDF_RHS_ONLY.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_ASSUME tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), dump_gimple_seq(), gimple_assume_body(), gimple_assume_guard(), newline_and_indent(), pp_left_brace, pp_newline(), pp_right_brace, pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dumps end of basic block BB to PP indented by INDENT spaces.
Referenced by gimple_dump_bb().
|
static |
Dumps header of basic block BB to OUTF indented by INDENT spaces and details described by flags.
References basic_block_def::count, dump_profile(), fputc(), get_lineno(), gsi_end_p(), gsi_next(), gsi_start_bb(), gsi_stmt(), loop::header, basic_block_def::index, profile_count::initialized_p(), is_gimple_debug(), basic_block_def::loop_father, loop::num, PRIu64, profile_quality_as_string(), profile_count::quality(), TDF_BLOCKS, TDF_GIMPLE, TDF_LINENO, UNKNOWN_LOCATION, and profile_count::value().
Referenced by gimple_dump_bb().
|
static |
Dump a GIMPLE_BIND tuple on the pretty_printer PP, 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(), 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().
|
static |
Dump the call statement GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References decl_is_tm_clone(), dump_generic_node(), dump_gimple_call_args(), dump_gimple_fmt(), fndecl_built_in_p(), gcc_assert, gimple_call_arg(), gimple_call_chain(), gimple_call_clobber_set(), gimple_call_fn(), gimple_call_internal_fn(), gimple_call_internal_p(), gimple_call_lhs(), gimple_call_must_tail_p(), gimple_call_num_args(), gimple_call_return_slot_opt_p(), gimple_call_tail_p(), gimple_call_use_set(), gimple_has_volatile_ops(), internal_fn_name(), newline_and_indent(), NULL, pp_dot, pp_greater, pp_points_to_solution(), pp_right_bracket, pp_right_paren, pp_semicolon, pp_space, pp_string(), PR_AWBARRIERSOMITTED, PR_DOESGOIRREVOCABLE, PR_EXCEPTIONBLOCK, PR_HASELSE, PR_HASNOABORT, PR_HASNOIRREVOCABLE, PR_HASNOSIMPLEREADS, PR_HASNOXMMUPDATE, PR_INSTRUMENTEDCODE, PR_PREFERUNINSTRUMENTED, PR_RARBARRIERSOMITTED, PR_READONLY, PR_UNDOLOGCODE, PR_UNINSTRUMENTEDCODE, print_call_name(), pt_solution_empty_p(), TDF_ALIAS, TDF_RAW, TDF_RHS_ONLY, TREE_CODE, TREE_INT_CST_LOW, and TREE_OPERAND.
Referenced by pp_gimple_stmt_1().
|
static |
Dump the call arguments for a gimple call. PP, FLAGS are as in dump_gimple_call.
References dump_generic_node(), gimple_call_arg(), gimple_call_internal_fn(), gimple_call_internal_p(), gimple_call_num_args(), gimple_call_va_arg_pack_p(), i, IFN_ASAN_MARK_FLAGS, IFN_GOACC_LOOP_CODES, IFN_GOACC_REDUCTION_CODES, IFN_UNIQUE_CODES, NULL, pp_string(), TREE_CODE, tree_fits_shwi_p(), and tree_to_shwi().
Referenced by dump_gimple_call().
|
static |
Dump a GIMPLE_CATCH tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References dump_gimple_fmt(), gimple_catch_handler(), gimple_catch_types(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump the gimple conditional GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References dump_edge_probability(), dump_generic_node(), dump_gimple_fmt(), FOR_EACH_EDGE, get_tree_code_name(), gimple_bb(), gimple_cond_code(), gimple_cond_false_label(), gimple_cond_lhs(), gimple_cond_rhs(), gimple_cond_true_label(), NULL, op_symbol_code(), pp_right_paren, pp_semicolon, pp_space, pp_string(), basic_block_def::succs, TDF_GIMPLE, TDF_GIMPLE_VAL, TDF_NONE, TDF_RAW, and TDF_RHS_ONLY.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_DEBUG tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References block_ultimate_origin(), dump_gimple_fmt(), gcc_unreachable, gimple_block(), GIMPLE_DEBUG_BEGIN_STMT, GIMPLE_DEBUG_BIND, gimple_debug_bind_get_value(), gimple_debug_bind_get_var(), GIMPLE_DEBUG_INLINE_ENTRY, GIMPLE_DEBUG_SOURCE_BIND, gimple_debug_source_bind_get_value(), gimple_debug_source_bind_get_var(), NULL_TREE, gimple::subcode, and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_EH_DISPATCH tuple on the pretty_printer PP.
References dump_gimple_fmt(), gimple_eh_dispatch_region(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_EH_ELSE tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References dump_gimple_fmt(), gimple_eh_else_e_body(), gimple_eh_else_n_body(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_EH_FILTER tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References dump_gimple_fmt(), gimple_eh_filter_failure(), gimple_eh_filter_types(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_EH_MUST_NOT_THROW tuple.
References dump_gimple_fmt(), gimple_eh_must_not_throw_fndecl(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
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, 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_dispatch(), 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().
|
static |
Dump a GIMPLE_GOTO tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References dump_gimple_fmt(), gimple_goto_dest(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_LABEL tuple on the pretty_printer PP, 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, gimple_label_label(), pp_colon, pp_printf(), pp_string(), TDF_EH, TDF_GIMPLE, and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump all the memory operands for statement GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References dump_generic_node(), gimple_vdef(), gimple_vuse(), newline_and_indent(), NULL_TREE, pp_greater, and pp_string().
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_OMP_ATOMIC_LOAD tuple on the pretty_printer PP, 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(), 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().
|
static |
Dump a GIMPLE_OMP_ATOMIC_STORE tuple on the pretty_printer PP, 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(), 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().
|
static |
Dump a GIMPLE_OMP_{MASTER,ORDERED,SECTION,STRUCTURED_BLOCK} tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), gcc_unreachable, 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().
|
static |
Dump a GIMPLE_OMP_CONTINUE tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), gimple_omp_continue_control_def(), gimple_omp_continue_control_use(), pp_comma, pp_right_paren, pp_space, pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_OMP_CRITICAL tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_critical_clauses(), gimple_omp_critical_name(), gimple_seq_empty_p(), newline_and_indent(), pp_left_brace, pp_newline(), pp_right_brace, pp_right_paren, pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_OMP_DISPATCH tuple on the pretty_printer BUFFER.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_dispatch_clauses(), 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().
|
static |
Dump a GIMPLE_OMP_FOR tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), dump_omp_loop_non_rect_expr(), gcc_unreachable, get_tree_code_name(), GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_FOR, GF_OMP_FOR_KIND_OACC_LOOP, GF_OMP_FOR_KIND_SIMD, GF_OMP_FOR_KIND_TASKLOOP, gimple_omp_body(), gimple_omp_for_clauses(), gimple_omp_for_collapse(), gimple_omp_for_cond(), gimple_omp_for_final(), gimple_omp_for_incr(), gimple_omp_for_index(), gimple_omp_for_initial(), gimple_omp_for_kind(), gimple_omp_for_pre_body(), gimple_seq_empty_p(), i, newline_and_indent(), pp_greater, pp_greater_equal, pp_left_brace, pp_less, pp_less_equal, pp_newline(), pp_right_brace, pp_right_paren, pp_space, pp_string(), TDF_RAW, and TREE_CODE.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_OMP_MASKED tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_masked_clauses(), 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().
|
static |
Dump a GIMPLE_OMP_ORDERED tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_ordered_clauses(), 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().
|
static |
Dump a GIMPLE_OMP_PARALLEL tuple on the pretty_printer PP, 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(), 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().
|
static |
Dump a GIMPLE_OMP_RETURN tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), gimple_omp_return_lhs(), gimple_omp_return_nowait_p(), pp_character(), pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_OMP_SCAN tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_scan_clauses(), 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().
|
static |
Dump a GIMPLE_OMP_SCOPE tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_scope_clauses(), 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().
|
static |
Dump a GIMPLE_OMP_SECTIONS tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_sections_clauses(), gimple_omp_sections_control(), gimple_seq_empty_p(), newline_and_indent(), pp_greater, pp_left_brace, pp_newline(), pp_right_brace, pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_OMP_SINGLE tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_single_clauses(), 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().
|
static |
Dump a GIMPLE_OMP_TARGET tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gcc_unreachable, GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_ENTER_DATA, GF_OMP_TARGET_KIND_EXIT_DATA, GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_DATA_KERNELS, GF_OMP_TARGET_KIND_OACC_DECLARE, GF_OMP_TARGET_KIND_OACC_ENTER_DATA, GF_OMP_TARGET_KIND_OACC_EXIT_DATA, GF_OMP_TARGET_KIND_OACC_HOST_DATA, GF_OMP_TARGET_KIND_OACC_KERNELS, GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_GANG_SINGLE, GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_PARALLELIZED, GF_OMP_TARGET_KIND_OACC_SERIAL, GF_OMP_TARGET_KIND_OACC_UPDATE, GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_UPDATE, gimple_omp_body(), gimple_omp_target_child_fn(), gimple_omp_target_clauses(), gimple_omp_target_data_arg(), gimple_omp_target_kind(), 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().
|
static |
Dump a GIMPLE_OMP_TASK tuple on the pretty_printer PP, 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(), gimple_omp_body(), gimple_omp_task_arg_size(), gimple_omp_task_child_fn(), gimple_omp_task_clauses(), gimple_omp_task_copy_fn(), gimple_omp_task_data_arg(), gimple_omp_task_taskloop_p(), gimple_omp_task_taskwait_p(), 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().
|
static |
Dump a GIMPLE_OMP_TASKGROUP tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_taskgroup_clauses(), 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().
|
static |
Dump a GIMPLE_OMP_TEAMS tuple on the pretty_printer PP.
References dump_gimple_fmt(), dump_gimple_seq(), dump_omp_clauses(), gimple_omp_body(), gimple_omp_teams_clauses(), gimple_seq_empty_p(), newline_and_indent(), pp_character(), pp_newline(), pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a PHI node PHI. PP, SPC and FLAGS are as in pp_gimple_stmt_1. The caller is responsible for calling pp_flush on PP to finalize pretty printer. If COMMENT is true, print this after #.
References dump_generic_node(), dump_gimple_fmt(), dump_location(), dump_ssaname_info(), 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().
|
static |
Dump a GIMPLE_RESX tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References dump_gimple_fmt(), gimple_resx_region(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump the return statement GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References dump_generic_node(), dump_gimple_fmt(), gimple_return_retval(), pp_semicolon, pp_space, pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Print the GIMPLE sequence SEQ on PP using SPC indentation spaces and FLAGS as in pp_gimple_stmt_1. The caller is responsible for calling pp_flush on PP to finalize the pretty printer.
References gsi_end_p(), gsi_next(), gsi_one_before_end_p(), gsi_start(), gsi_stmt(), i, INDENT, pp_gimple_stmt_1(), and pp_newline().
Referenced by dump_gimple_assume(), dump_gimple_bind(), dump_gimple_fmt(), dump_gimple_omp_block(), dump_gimple_omp_critical(), dump_gimple_omp_dispatch(), dump_gimple_omp_for(), dump_gimple_omp_masked(), dump_gimple_omp_ordered(), dump_gimple_omp_parallel(), 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_transaction(), dump_gimple_try(), and print_gimple_seq().
|
static |
Dump the switch statement GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References CASE_LABEL, cfun, dump_edge_probability(), dump_generic_node(), dump_gimple_fmt(), find_edge(), gcc_checking_assert, gimple_bb(), GIMPLE_CHECK, gimple_switch_index(), gimple_switch_label(), gimple_switch_num_labels(), i, label_to_block(), NULL_TREE, pp_greater, pp_space, pp_string(), TDF_GIMPLE, and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_TRANSACTION tuple on the pretty_printer PP.
References dump_generic_node(), dump_gimple_fmt(), dump_gimple_seq(), gimple_transaction_body(), gimple_transaction_label_norm(), gimple_transaction_label_over(), gimple_transaction_label_uninst(), gimple_transaction_subcode(), GTMA_DOES_GO_IRREVOCABLE, GTMA_HAS_NO_INSTRUMENTATION, GTMA_HAVE_ABORT, GTMA_HAVE_LOAD, GTMA_HAVE_STORE, GTMA_IS_OUTER, GTMA_IS_RELAXED, GTMA_MAY_ENTER_IRREVOCABLE, newline_and_indent(), pp_left_brace, pp_newline(), pp_printf(), pp_right_brace, pp_right_bracket, pp_string(), and TDF_RAW.
Referenced by pp_gimple_stmt_1().
|
static |
Dump a GIMPLE_TRY tuple on the pretty_printer PP, SPC spaces of indent. FLAGS specifies details to show in the dump (see TDF_* in dumpfile.h).
References as_a(), dump_gimple_fmt(), dump_gimple_seq(), gimple_eh_else_e_body(), gimple_eh_else_n_body(), gimple_seq_first_stmt(), gimple_seq_nondebug_singleton_p(), GIMPLE_TRY_CATCH, gimple_try_cleanup(), gimple_try_eval(), GIMPLE_TRY_FINALLY, gimple_try_kind(), is_a(), newline_and_indent(), pp_left_brace, pp_newline(), pp_right_brace, pp_string(), TDF_RAW, and type().
Referenced by pp_gimple_stmt_1().
|
static |
Dump edges represented implicitly in basic block BB to PP, indented by INDENT spaces, with details given by FLAGS.
References dump_location(), EDGE_COUNT, extract_true_false_edges_from_block(), find_fallthru_edge(), gsi_last_bb(), INDENT, newline_and_indent(), basic_block_def::next_bb, pp_cfg_jump(), pp_newline(), pp_string(), safe_is_a(), basic_block_def::succs, TDF_GIMPLE, TDF_LINENO, and UNKNOWN_LOCATION.
Referenced by gimple_dump_bb_buff(), and gimple_dump_bb_for_graph().
|
static |
Dump PHI nodes of basic block BB to PP 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().
|
static |
Return formatted string of a VALUE probability (biased by REG_BR_PROB_BASE). Returned string is allocated by xstrdup_for_dump.
References free(), profile_probability::initialized_p(), REG_BR_PROB_BASE, profile_probability::to_reg_br_prob_base(), and xstrdup_for_dump().
Referenced by dump_edge_probability().
|
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(), NULL, PRId64, and xstrdup_for_dump().
Referenced by dump_gimple_bb_header().
|
static |
Dump ptr_info and range_info for NODE on pretty_printer PP with SPC spaces of indent.
References ptr_info_def::align, get_global_range_query(), get_ptr_info_alignment(), ptr_info_def::misalign, newline_and_indent(), POINTER_TYPE_P, pp_points_to_solution(), pp_printf(), pp_string(), pp_vrange, ptr_info_def::pt, r, range_query::range_of_expr(), SSA_NAME_PTR_INFO, SSA_NAME_RANGE_INFO, TREE_CODE, and TREE_TYPE.
Referenced by dump_gimple_phi(), dump_ssaname_info_to_file(), and pp_gimple_stmt_1().
void dump_ssaname_info_to_file | ( | FILE * | file, |
tree | node, | ||
int | spc ) |
As dump_ssaname_info, but dump to FILE.
References dump_ssaname_info(), pp_flush(), pp_needs_newline(), and pretty_printer::set_output_stream().
Referenced by dump_default_def().
|
static |
Helper for dump_gimple_assign. Print the ternary RHS of the assignment GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References dump_generic_node(), gcc_unreachable, get_tree_code_name(), 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().
|
static |
Helper for dump_gimple_assign. Print the unary RHS of the assignment GS. PP, SPC and FLAGS are as in pp_gimple_stmt_1.
References CASE_CONVERT, dump_generic_node(), get_tree_code_name(), gimple_assign_lhs(), gimple_assign_rhs1(), gimple_assign_rhs_code(), op_code_prio(), op_prio(), pp_complement, pp_exclamation, pp_greater, pp_left_bracket, pp_left_paren, pp_minus, pp_right_paren, pp_string(), tcc_constant, tcc_declaration, tcc_reference, TDF_GIMPLE, TREE_CODE_CLASS, and TREE_TYPE.
Referenced by dump_gimple_assign().
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 dump_gimple_bb_footer(), dump_gimple_bb_header(), gimple_dump_bb_buff(), basic_block_def::index, NUM_FIXED_BLOCKS, pp_needs_newline(), and pretty_printer::set_output_stream().
|
static |
Dumps basic block BB to PP with details described by FLAGS and indented by INDENT spaces.
References current_function_decl, DECL_STRUCT_FUNCTION, dump_histograms_for_stmt(), dump_implicit_edges(), dump_phi_nodes(), gcc_checking_assert, gsi_end_p(), gsi_next(), gsi_start_bb(), gsi_stmt(), INDENT, pp_buffer(), pp_flush(), pp_gimple_stmt_1(), and pp_newline_and_flush().
Referenced by gimple_dump_bb().
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().
|
static |
Emit a newline and SPC indentation spaces to PP.
References INDENT, and pp_newline().
Referenced by dump_gimple_asm(), dump_gimple_assume(), dump_gimple_bind(), dump_gimple_call(), dump_gimple_fmt(), dump_gimple_mem_ops(), dump_gimple_omp_atomic_load(), dump_gimple_omp_block(), dump_gimple_omp_critical(), dump_gimple_omp_dispatch(), dump_gimple_omp_for(), dump_gimple_omp_masked(), dump_gimple_omp_ordered(), dump_gimple_omp_parallel(), 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_transaction(), dump_gimple_try(), dump_implicit_edges(), and dump_ssaname_info().
|
static |
Dump jump to basic block BB that is represented implicitly in the cfg to PP.
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().
void pp_gimple_stmt_1 | ( | pretty_printer * | pp, |
const gimple * | gs, | ||
int | spc, | ||
dump_flags_t | flags ) |
Print the gimple statement GS on the pretty printer PP, 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 PP to finalize the pretty printer.
References as_a(), 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_dispatch(), 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(), 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().
|
static |
Dump the points-to solution *PT to PP.
References pt_solution::anything, bitmap_empty_p(), pt_solution::const_pool, pt_solution::escaped, EXECUTE_IF_SET_IN_BITMAP, i, pt_solution::ipa_escaped, pt_solution::nonlocal, pt_solution::null, pp_decimal_int, pp_right_brace, pp_space, pp_string(), pt_solution::vars, pt_solution::vars_contains_escaped, pt_solution::vars_contains_escaped_heap, pt_solution::vars_contains_interposable, pt_solution::vars_contains_nonlocal, and pt_solution::vars_contains_restrict.
Referenced by dump_gimple_call(), and dump_ssaname_info().
void print_gimple_expr | ( | 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. Print only the right-hand side of the statement.
References g, pp_flush(), pp_gimple_stmt_1(), pp_needs_newline(), pretty_printer::set_output_stream(), and TDF_RHS_ONLY.
Referenced by dump_builtin_access(), dump_stmt_cost(), dump_strlen_info(), eliminate_redundant_computations(), eliminate_dom_walker::eliminate_stmt(), simplify_using_ranges::fold_cond(), ccp_folder::fold_stmt(), forward_propagate_into_gimple_cond(), gimple_fold_stmt_to_constant_1(), visit_phi(), visit_stmt(), and vn_nary_build_or_lookup_1().
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 dump_gimple_seq(), pp_needs_newline(), pp_newline_and_flush(), and pretty_printer::set_output_stream().
Referenced by debug_gimple_seq(), dump_function_to_file(), gimple_simplify_phiopt(), and replace_stmt_with_simplification().
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 g, pp_gimple_stmt_1(), pp_needs_newline(), pp_newline_and_flush(), and pretty_printer::set_output_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(), blend_vec_perm_simplify_seqs(), break_up_subtract(), build_access_from_call_arg(), build_new_reduction(), assume_query::calculate_phi(), assume_query::calculate_stmt(), 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_if_else_store_replacement_1(), 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(), gori_compute::edge_range_p(), 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_necessary_statements(), find_tail_calls(), 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_stmt_necessary(), mark_virtual_phi_result_for_renaming(), maybe_dump_rtl_for_gimple_stmt(), maybe_error_musttail(), maybe_invalidate(), maybe_optimize_arith_overflow(), maybe_remove_writeonly_store(), ipa_param_adjustments::modify_call(), move_computations_worker(), move_stmt(), narrow_vec_perm_simplify_seq(), oacc_entry_exit_ok_1(), oacc_entry_exit_single_gang(), object_sizes_execute(), optimize_memcpy_to_memset(), optimize_recip_sqrt(), dom_opt_dom_walker::optimize_stmt(), optimize_tail_call(), optimize_va_list_gpr_fpr_size(), 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(), dom_ranger::range_of_stmt(), gimple_ranger::range_of_stmt(), recognise_vec_perm_simplify_seq(), relation_oracle::record(), 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(), 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().