GCC Middle and Back End API Reference
dumpfile.h File Reference
#include "line-map.h"
Include dependency graph for dumpfile.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dump_file_info
class  gcc::dump_manager

Namespaces

namespace  gcc

Macros

#define TDF_ADDRESS   (1 << 0) /* dump node addresses */
#define TDF_SLIM   (1 << 1) /* don't go wild following links */
#define TDF_RAW   (1 << 2) /* don't unparse the function */
#define TDF_DETAILS
#define TDF_STATS
#define TDF_BLOCKS   (1 << 5) /* display basic block boundaries */
#define TDF_VOPS   (1 << 6) /* display virtual operands */
#define TDF_LINENO   (1 << 7) /* display statement line numbers */
#define TDF_UID   (1 << 8) /* display decl UIDs */
#define TDF_TREE   (1 << 9) /* is a tree dump */
#define TDF_RTL   (1 << 10) /* is a RTL dump */
#define TDF_IPA   (1 << 11) /* is an IPA dump */
#define TDF_STMTADDR   (1 << 12) /* Address of stmt. */
#define TDF_GRAPH   (1 << 13) /* a graph dump is being emitted */
#define TDF_MEMSYMS
#define TDF_DIAGNOSTIC
#define TDF_VERBOSE
#define TDF_RHS_ONLY
#define TDF_ASMNAME   (1 << 18) /* display asm names of decls */
#define TDF_EH
#define TDF_NOUID   (1 << 20) /* omit UIDs from dumps. */
#define TDF_ALIAS   (1 << 21) /* display alias information */
#define TDF_ENUMERATE_LOCALS   (1 << 22) /* Enumerate locals by uid. */
#define TDF_CSELIB   (1 << 23) /* Dump cselib details. */
#define TDF_SCEV   (1 << 24) /* Dump SCEV details. */
#define TDF_COMMENT   (1 << 25) /* Dump lines with prefix ";;" */
#define MSG_OPTIMIZED_LOCATIONS   (1 << 26) /* -fopt-info optimized sources */
#define MSG_MISSED_OPTIMIZATION   (1 << 27) /* missed opportunities */
#define MSG_NOTE   (1 << 28) /* general optimization info */
#define MSG_ALL
#define OPTGROUP_NONE   (0)
#define OPTGROUP_IPA   (1 << 1) /* IPA optimization passes */
#define OPTGROUP_LOOP   (1 << 2) /* Loop optimization passes */
#define OPTGROUP_INLINE   (1 << 3) /* Inlining passes */
#define OPTGROUP_VEC   (1 << 4) /* Vectorization passes */
#define OPTGROUP_OTHER   (1 << 5) /* All other passes */
#define OPTGROUP_ALL

Enumerations

enum  tree_dump_index {
  TDI_none, TDI_cgraph, TDI_inheritance, TDI_tu,
  TDI_class, TDI_original, TDI_generic, TDI_nested,
  TDI_tree_all, TDI_rtl_all, TDI_ipa_all, TDI_end
}

Functions

FILE * dump_begin (int, int *)
void dump_end (int, FILE *)
int opt_info_switch_p (const char *)
const char * dump_flag_name (int)
void dump_printf (int, const char *,...) ATTRIBUTE_PRINTF_2
void dump_printf_loc (int, source_location, const char *,...) ATTRIBUTE_PRINTF_3
void dump_basic_block (int, basic_block, int)
void dump_generic_expr_loc (int, source_location, int, tree)
void dump_generic_expr (int, int, tree)
void dump_gimple_stmt_loc (int, source_location, int, gimple, int)
void dump_gimple_stmt (int, int, gimple, int)
void print_combine_total_stats (void)
bool enable_rtl_dump_file (void)
void dump_node (const_tree, int, FILE *)
void dump_combine_total_stats (FILE *)
void dump_bb (FILE *, basic_block, int, int)
static bool dump_enabled_p ()

Variables

FILE * dump_file
FILE * alt_dump_file
int dump_flags
const char * dump_file_name

Macro Definition Documentation

#define MSG_OPTIMIZED_LOCATIONS   (1 << 26) /* -fopt-info optimized sources */
#define OPTGROUP_ALL
#define OPTGROUP_INLINE   (1 << 3) /* Inlining passes */
#define OPTGROUP_IPA   (1 << 1) /* IPA optimization passes */
#define OPTGROUP_LOOP   (1 << 2) /* Loop optimization passes */
#define OPTGROUP_OTHER   (1 << 5) /* All other passes */
#define OPTGROUP_VEC   (1 << 4) /* Vectorization passes */
#define TDF_ADDRESS   (1 << 0) /* dump node addresses */

Bit masks to control dumping. Not all values are applicable to all dumps. Add new ones at the end. When you define new values, extend the DUMP_OPTIONS array in dumpfile.c. The TDF_* flags coexist with MSG_* flags (for -fopt-info) and the bit values must be chosen to allow that.

#define TDF_ALIAS   (1 << 21) /* display alias information */
#define TDF_ASMNAME   (1 << 18) /* display asm names of decls */

Referenced by print_generic_expr().

#define TDF_BLOCKS   (1 << 5) /* display basic block boundaries */
#define TDF_COMMENT   (1 << 25) /* Dump lines with prefix ";;" */
#define TDF_CSELIB   (1 << 23) /* Dump cselib details. */
#define TDF_DIAGNOSTIC
Value:
(1 << 15) /* A dump to be put in a diagnostic
message. */
#define TDF_EH
Value:
(1 << 19) /* display EH region number
holding this gimple statement. */
#define TDF_ENUMERATE_LOCALS   (1 << 22) /* Enumerate locals by uid. */
#define TDF_GRAPH   (1 << 13) /* a graph dump is being emitted */
#define TDF_IPA   (1 << 11) /* is an IPA dump */

Referenced by dump_flag_name().

#define TDF_LINENO   (1 << 7) /* display statement line numbers */

Referenced by dump_ssaname_info().

#define TDF_MEMSYMS
Value:
(1 << 14) /* display memory symbols in expr.
Implies TDF_VOPS. */

Referenced by aff_combination_constant_multiple_p(), and print_gimple_seq().

#define TDF_NOUID   (1 << 20) /* omit UIDs from dumps. */
#define TDF_RAW   (1 << 2) /* don't unparse the function */
#define TDF_RHS_ONLY
Value:
(1 << 17) /* a flag to only print the RHS of
a gimple stmt. */
#define TDF_RTL   (1 << 10) /* is a RTL dump */
#define TDF_SCEV   (1 << 24) /* Dump SCEV details. */

Referenced by chrec_evaluate().

#define TDF_STATS
Value:
(1 << 4) /* dump various statistics about
each pass */

Referenced by statistics_fini_pass_3().

#define TDF_STMTADDR   (1 << 12) /* Address of stmt. */
#define TDF_TREE   (1 << 9) /* is a tree dump */
#define TDF_UID   (1 << 8) /* display decl UIDs */

Referenced by print_generic_expr().

#define TDF_VERBOSE
Value:
(1 << 16) /* A dump that uses the full tree
dumper to print stmts. */
#define TDF_VOPS   (1 << 6) /* display virtual operands */

Enumeration Type Documentation

Definitions for the shared dumpfile. Copyright (C) 2004-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/. Different tree dump places. When you add new tree dump places, extend the DUMP_FILES array in dumpfile.c.

Enumerator:
TDI_none 
TDI_cgraph 
TDI_inheritance 
TDI_tu 
TDI_class 
TDI_original 
TDI_generic 
TDI_nested 
TDI_tree_all 
TDI_rtl_all 
TDI_ipa_all 
TDI_end 

Function Documentation

void dump_basic_block ( int  ,
basic_block  ,
int   
)
void dump_bb ( FILE *  ,
basic_block  ,
int  ,
int   
)
FILE* dump_begin ( int  ,
int *   
)
void dump_combine_total_stats ( FILE *  )
void dump_end ( int  ,
FILE *   
)
const char* dump_flag_name ( int  )
void dump_generic_expr ( int  ,
int  ,
tree   
)
void dump_generic_expr_loc ( int  dump_kind,
source_location  loc,
int  extra_dump_flags,
tree  t 
)

Similar to dump_generic_expr, except additionally print the source location.

References alt_dump_file, alt_flags, dump_file, and pflags.

void dump_gimple_stmt ( int  ,
int  ,
gimple  ,
int   
)
void dump_gimple_stmt_loc ( int  dump_kind,
source_location  loc,
int  extra_dump_flags,
gimple  gs,
int  spc 
)

Similar to dump_gimple_stmt, except additionally print source location.

References alt_dump_file, alt_flags, dump_file, dump_flags, pflags, and print_generic_expr().

void dump_node ( const_tree  ,
int  ,
FILE *   
)
void dump_printf ( int  ,
const char *  ,
  ... 
)
void dump_printf_loc ( int  ,
source_location  ,
const char *  ,
  ... 
)
bool enable_rtl_dump_file ( )

Enable RTL dump for all the RTL passes.

int opt_info_switch_p ( const char *  )
void print_combine_total_stats ( void  )

Print information from the combine pass on dump_file.


Variable Documentation

FILE* dump_file

Global variables used to communicate with passes.

These are currently used for communicating between passes. However, instead of accessing them directly, the passes can use dump_printf () for dumps.

Referenced by add_access_to_work_queue(), add_mem_for_addr(), add_removable_extension(), add_to_dst_predicate_list(), adjust_cfg_counts(), dom_opt_dom_walker::after_dom_children(), analyze_caller_dereference_legality(), analyze_evolution_in_loop(), analyze_function(), bb_with_exit_edge_p(), bit_value_binop(), break_up_subtract(), break_up_subtract_bb(), btr_def_live_range(), build_and_add_sum(), build_new_reduction(), canonicalize_comparison(), case_values_threshold(), cgraph_edge_remove_caller(), change_cfi_row(), check_array_ref(), check_call(), check_stmt(), check_store(), chrec_evaluate(), coalesce(), coalesce_partitions(), collect_phi_def_edges(), compute_builtin_object_size(), compute_insert_delete(), compute_scalar_evolution_in_loop(), cond_exec_find_if_block(), cond_expr_object_size(), cond_move_process_if_block(), connect_traces(), contains_hot_call_p(), convert_gimple_call(), copy_prop_visit_cond_stmt(), correct_negative_edge_counts(), create_canonical_iv(), cse_process_notes(), cselib_lookup_mem(), dataflow_set_preserve_mem_locs(), dbg_cnt(), debug_sa_points_to_info(), decide_unrolling_and_peeling(), determine_common_wider_type(), determine_use_iv_cost(), df_clear_flags(), df_create_unused_note(), df_ignore_stack_reg(), df_remove_dead_eq_notes(), df_set_unused_notes_for_mw(), df_whole_mw_reg_dead_p(), df_word_lr_transfer_function(), DFS(), distribute_loop(), do_partial_partial_insertion(), dominated_by_forbidden(), dse_confluence_0(), dse_optimize_stmt(), dse_step3(), dse_step4(), dse_transfer_function(), dump_asserts_for(), dump_generic_expr(), dump_generic_expr_loc(), dump_gimple_stmt(), dump_gimple_stmt_loc(), dump_inline_hints(), dump_names_replaced_by(), dump_prediction(), dump_printf(), dump_shift_choices(), duplicate_node_data(), edge_badness(), eliminate_avail(), eliminate_dom_walker::eliminate_dom_walker(), eliminate_phi(), eliminate_redundant_computations(), emit_partition_copy(), entry_register(), execute_function_todo(), expand_phi_nodes(), find_interesting_uses_stmt(), find_max_flow(), find_removable_extensions(), find_subloop_latch_edge_by_profile(), find_switch_asserts(), find_traces(), find_traces_1_round(), find_uninit_use(), flatten_function(), form_subloop(), forward_edge_to_pdom(), forward_propagate_addr_expr(), free_ldst_entry(), gate_ud_dce(), gather_caller_stats(), gcd_of_steps_may_divide_p(), generate_summary(), get_address_cost(), get_rank(), get_required_cycles(), get_stored_val(), get_unary_op(), get_use_type(), get_working_sets(), gimplify_addr(), if_convertible_gimple_assign_stmt_p(), ifcombine_ifandif(), ifcvt_could_trap_p(), ifcvt_memrefs_wont_trap(), infer_value_range(), init_alias_vars(), init_caller_stats(), init_omega_for_ddr(), initialize_matrix_A(), insert_insn_end_basic_block(), insert_rtx_to_part_on_edge(), insert_store(), instantiate_scev_1(), instrument_edges(), ipa_discover_readonly_nonaddressable_vars(), ipa_print_order(), ipa_propagate_frequency(), ipa_reference_get_not_written_global(), ipa_value_from_jfunc(), is_phi_for_stmt(), is_reassociable_op(), is_use_properly_guarded(), known_aggs_to_agg_replacement_list(), linearize_expr(), lookup_avail_expr(), loop_has_vector_phi_nodes(), loop_parallel_p(), mark_all_reaching_defs_necessary(), mark_artificial_uses(), merge_blocks_move_predecessor_nojumps(), merge_blocks_move_successor_nojumps(), ncd_for_two_cands(), ncd_of_cand_and_phis(), new_btr_user(), non_rewritable_mem_ref_base(), normalize_omega_problem(), number_of_exit_cond_executions(), omega_do_elimination(), omega_eliminate_red(), omega_substitute_red(), opt_info_switch_p(), optimize_stmt(), optimize_unreachable(), outgoing_edges_match(), partition_stack_vars(), phi_dependent_cand_p(), possible_polymorphic_call_target_p(), pre_insert_copies(), predict_paths_for_bb(), print_all_lattices(), process_insert_insn(), process_switch(), prologue_epilogue_contains(), propagate_effects(), prune_group_by_reuse(), pt_solution_includes_global(), read_replacements_section(), record_biv(), record_entry_value(), record_insns(), record_iv(), record_store(), register_new_update_set(), regrename_chain_from_id(), remove_exits_and_undefined_stmts(), remove_node_data(), remove_stmt_or_phi(), replace_phi_args_in(), replace_read(), replace_ref(), reversed_condition(), rewrite_use_compare(), rewrite_uses(), rtx_moveable_p(), self_recursive_p(), set_lattice_value(), set_position_unneeded(), simplify_binary_expression(), special_builtin_state(), spread_undeadness(), statistics_fini_pass_3(), swap(), test_for_singularity(), tm_log_emit_stmt(), tree_ssa_unswitch_loops(), tree_unswitch_single_loop(), trip_count_to_ahead_ratio_too_small_p(), try_combine_chains(), try_crossjump_to_edge(), try_fwprop_subst(), try_improve_iv_set(), unsuitable_loc(), update_specialized_profile(), va_list_ptr_read(), value_replacement(), verify_omega_pb(), visit_copy(), visit_reference_op_load(), vn_nary_op_insert_stmt(), vn_phi_eq(), vrp_evaluate_conditional(), vt_add_function_parameter(), vt_get_decl_and_offset(), and want_early_inline_function_p().

const char* dump_file_name
int dump_flags

Referenced by add_mem_for_addr(), add_to_dst_predicate_list(), dom_opt_dom_walker::after_dom_children(), analyze_evolution_in_loop(), analyze_function(), bit_value_binop(), break_up_subtract_bb(), build_and_add_sum(), build_new_reduction(), check_array_ref(), chrec_evaluate(), coalesce_partitions(), collect_phi_def_edges(), compute_builtin_object_size(), compute_scalar_evolution_in_loop(), cond_expr_object_size(), contains_hot_call_p(), convert_gimple_call(), determine_common_wider_type(), DFS(), distribute_loop(), do_partial_partial_insertion(), dominated_by_forbidden(), dse_confluence_0(), dse_optimize_stmt(), dse_step3(), dse_step4(), dse_transfer_function(), dump_generic_expr(), dump_gimple_stmt(), dump_gimple_stmt_loc(), dump_inline_hints(), eliminate_avail(), eliminate_dom_walker::eliminate_dom_walker(), eliminate_phi(), eliminate_redundant_computations(), expand_phi_nodes(), find_switch_asserts(), forward_propagate_addr_expr(), gcd_of_steps_may_divide_p(), get_rank(), get_stored_val(), if_convertible_gimple_assign_stmt_p(), ifcvt_could_trap_p(), initialize_matrix_A(), insert_rtx_to_part_on_edge(), instantiate_scev_1(), is_phi_for_stmt(), is_reassociable_op(), is_use_properly_guarded(), linearize_expr(), lookup_avail_expr(), loop_has_vector_phi_nodes(), loop_parallel_p(), ncd_for_two_cands(), ncd_of_cand_and_phis(), normalize_omega_problem(), omega_do_elimination(), omega_eliminate_red(), optimize_stmt(), optimize_unreachable(), partition_stack_vars(), phi_dependent_cand_p(), propagate_effects(), prune_group_by_reuse(), record_entry_value(), record_store(), remove_stmt_or_phi(), replace_phi_args_in(), replace_read(), replace_ref(), rewrite_use_compare(), rewrite_uses(), self_recursive_p(), set_lattice_value(), set_position_unneeded(), simplify_binary_expression(), statistics_fini_pass_3(), tree_ssa_unswitch_loops(), tree_unswitch_single_loop(), trip_count_to_ahead_ratio_too_small_p(), try_combine_chains(), try_improve_iv_set(), unsuitable_loc(), update_specialized_profile(), va_list_ptr_read(), value_replacement(), verify_omega_pb(), visit_reference_op_load(), vn_nary_op_insert_stmt(), vn_phi_eq(), vrp_evaluate_conditional(), vt_add_function_parameter(), and vt_get_decl_and_offset().