GCC Middle and Back End API Reference
|
#include "line-map.h"
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 |
#define MSG_ALL |
#define MSG_MISSED_OPTIMIZATION (1 << 27) /* missed opportunities */ |
Referenced by free_histograms(), perm_mask_for_reverse(), vect_analyze_loop_1(), vect_analyze_stmt(), vect_build_slp_tree_1(), vect_can_advance_ivs_p(), vect_compute_data_ref_alignment(), vect_create_vectorized_promotion_stmts(), vect_find_same_alignment_drs(), vect_gen_perm_mask(), vect_get_mask_element(), vect_get_slp_defs(), vect_setup_realignment(), vect_slp_analyze_data_ref_dependence(), and vect_update_misalignment_for_peel().
#define MSG_NOTE (1 << 28) /* general optimization info */ |
Referenced by dr_group_sort_cmp(), get_initial_def_for_reduction(), read_profile_edge_counts(), vect_analyze_data_ref_accesses(), vect_analyze_loop_1(), vect_analyze_scalar_cycles(), vect_build_slp_tree_1(), vect_can_advance_ivs_p(), vect_compute_data_ref_alignment(), vect_do_peeling_for_loop_bound(), vect_find_same_alignment_drs(), vect_get_store_cost(), vect_get_vec_def_for_operand(), vect_loop_kill_debug_uses(), vect_mark_for_runtime_alias_test(), vect_mark_relevant(), vect_mark_slp_stmts_relevant(), vect_min_worthwhile_factor(), vect_model_reduction_cost(), vect_model_simple_cost(), vect_model_store_cost(), vect_pattern_recog_1(), vect_peeling_hash_choose_best_peeling(), vect_stmt_relevant_p(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), vect_update_misalignment_for_peel(), and vectorizable_live_operation().
#define MSG_OPTIMIZED_LOCATIONS (1 << 26) /* -fopt-info optimized sources */ |
Referenced by vect_create_cond_for_alias_checks().
#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 */ |
Referenced by fill_always_executed_in(), gate_tree_loop_vectorize(), make_pass_iv_optimize(), and tree_ssa_loop_ivopts().
#define OPTGROUP_NONE (0) |
Flags to control high-level -fopt-info dumps. Usually these flags define a group of passes. An optimization pass can be part of multiple groups.
Referenced by cse_change_cc_mode_insns(), estimate_bb_frequencies(), execute_sink_code(), final_forward_branch_p(), fini_dce(), free_bb_for_insn(), fwprop_init(), gate_handle_partition_blocks(), identify_dead_nodes(), produce_symtab(), rest_of_handle_branch_target_load_optimize1(), rest_of_handle_initialize_regs(), rest_of_handle_stack_ptr_mod(), gcc::pass_manager::set_pass_for_id(), tree_call_cdce(), tree_ssa_loop_bounds(), tsan_gate(), and uid_ssaname_map_eq().
#define OPTGROUP_OTHER (1 << 5) /* All other passes */ |
#define OPTGROUP_VEC (1 << 4) /* Vectorization passes */ |
Referenced by gate_tree_loop_vectorize().
#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 */ |
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_DETAILS |
Referenced by add_to_dst_predicate_list(), check_array_ref(), coalesce_partitions(), compute_builtin_object_size(), cond_expr_object_size(), dominated_by_forbidden(), dse_optimize_stmt(), dump_flow_info(), dump_inline_hints(), find_switch_asserts(), forward_propagate_addr_expr(), get_rank(), is_reassociable_op(), set_lattice_value(), tree_ssa_unswitch_loops(), tree_unswitch_single_loop(), unsuitable_loc(), va_list_ptr_read(), value_replacement(), and vn_nary_op_insert_stmt().
#define TDF_DIAGNOSTIC |
#define TDF_EH |
#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 |
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 |
#define TDF_RTL (1 << 10) /* is a RTL dump */ |
Referenced by dump_flag_name(), fixup_partitions(), and loop_exit_at_end_p().
#define TDF_SCEV (1 << 24) /* Dump SCEV details. */ |
Referenced by chrec_evaluate().
#define TDF_SLIM (1 << 1) /* don't go wild following links */ |
Referenced by bb_with_exit_edge_p(), calculate_live_on_exit(), create_canonical_iv(), debug_rdg(), dr_group_sort_cmp(), dump_live_info(), dump_names_replaced_by(), dump_var_map(), eliminate_phi(), eliminate_useless_phis(), find_interesting_uses_stmt(), find_replaceable_exprs(), forward_edge_to_pdom(), get_initial_def_for_reduction(), gimple_mod_pow2_value_transform(), ifcvt_memrefs_wont_trap(), insert_updated_phi_nodes_for(), mark_all_reaching_defs_necessary(), n_iv_cands(), n_iv_uses(), process_switch(), register_new_update_set(), rewrite_use_compare(), vect_analyze_data_ref_accesses(), vect_analyze_scalar_cycles(), vect_build_slp_tree_1(), vect_can_advance_ivs_p(), vect_do_peeling_for_loop_bound(), vect_find_same_alignment_drs(), vect_get_slp_defs(), vect_loop_kill_debug_uses(), vect_mark_for_runtime_alias_test(), vect_slp_analyze_data_ref_dependence(), vect_update_misalignment_for_peel(), and vectorizable_live_operation().
#define TDF_STATS |
Referenced by statistics_fini_pass_3().
#define TDF_STMTADDR (1 << 12) /* Address of stmt. */ |
#define TDF_TREE (1 << 9) /* is a tree dump */ |
Referenced by dump_flag_name(), and register_one_dump_file().
#define TDF_UID (1 << 8) /* display decl UIDs */ |
Referenced by print_generic_expr().
#define TDF_VERBOSE |
#define TDF_VOPS (1 << 6) /* display virtual operands */ |
Referenced by aff_combination_constant_multiple_p(), and print_gimple_seq().
enum tree_dump_index |
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.
void dump_basic_block | ( | int | , |
basic_block | , | ||
int | |||
) |
void dump_bb | ( | FILE * | , |
basic_block | , | ||
int | , | ||
int | |||
) |
In cfghooks.c
FILE* dump_begin | ( | int | , |
int * | |||
) |
In dumpfile.c
void dump_combine_total_stats | ( | FILE * | ) |
In combine.c
|
inlinestatic |
Return true if any of the dumps is enabled, false otherwise.
Referenced by free_histograms(), get_initial_def_for_reduction(), loop_exit_at_end_p(), perm_mask_for_reverse(), read_profile_edge_counts(), vect_analyze_data_ref_accesses(), vect_analyze_loop_1(), vect_analyze_scalar_cycles(), vect_analyze_stmt(), vect_build_slp_tree_1(), vect_can_advance_ivs_p(), vect_compute_data_ref_alignment(), vect_create_cond_for_alias_checks(), vect_create_vectorized_promotion_stmts(), vect_do_peeling_for_loop_bound(), vect_find_same_alignment_drs(), vect_gen_perm_mask(), vect_get_mask_element(), vect_get_slp_defs(), vect_get_store_cost(), vect_get_vec_def_for_operand(), vect_loop_kill_debug_uses(), vect_mark_relevant(), vect_min_worthwhile_factor(), vect_model_reduction_cost(), vect_model_simple_cost(), vect_model_store_cost(), vect_pattern_recog_1(), vect_peeling_hash_choose_best_peeling(), vect_setup_realignment(), vect_slp_analyze_data_ref_dependence(), vect_stmt_relevant_p(), vect_transform_loop(), vect_update_ivs_after_vectorizer(), and vect_update_misalignment_for_peel().
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 * | |||
) |
In tree-dump.c
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.
FILE* alt_dump_file |
Referenced by dump_generic_expr(), dump_generic_expr_loc(), dump_gimple_stmt(), dump_gimple_stmt_loc(), and dump_printf().
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().