GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | pass_data |
class | opt_pass |
class | gimple_opt_pass |
class | rtl_opt_pass |
class | ipa_opt_pass_d |
class | simple_ipa_opt_pass |
struct | register_pass_info |
Namespaces | |
namespace | gcc |
Macros | |
#define | PROP_gimple_any (1 << 0) /* entire gimple grammar @endverbatim */ |
#define | PROP_gimple_lcf (1 << 1) /* lowered control flow @endverbatim */ |
#define | PROP_gimple_leh (1 << 2) /* lowered eh @endverbatim */ |
#define | PROP_cfg (1 << 3) |
#define | PROP_objsz (1 << 4) /* object sizes computed @endverbatim */ |
#define | PROP_ssa (1 << 5) |
#define | PROP_no_crit_edges (1 << 6) |
#define | PROP_rtl (1 << 7) |
#define | PROP_gimple_lomp (1 << 8) /* lowered OpenMP directives @endverbatim */ |
#define | PROP_cfglayout (1 << 9) /* cfglayout mode on RTL @endverbatim */ |
#define | PROP_gimple_lcx (1 << 10) /* lowered complex @endverbatim */ |
#define | PROP_loops (1 << 11) /* preserve loop structures @endverbatim */ |
#define | PROP_gimple_lvec (1 << 12) /* lowered vector @endverbatim */ |
#define | PROP_gimple_eomp (1 << 13) /* no OpenMP directives @endverbatim */ |
#define | PROP_gimple_lva (1 << 14) /* No va_arg internal function. @endverbatim */ |
#define | PROP_gimple_opt_math |
#define | PROP_gimple_lomp_dev (1 << 16) /* done omp_device_lower @endverbatim */ |
#define | PROP_rtl_split_insns (1 << 17) /* RTL has insns split. @endverbatim */ |
#define | PROP_loop_opts_done |
#define | PROP_assumptions_done |
#define | PROP_gimple_lbitint (1 << 20) /* lowered large _BitInt @endverbatim */ |
#define | PROP_gimple (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp) |
#define | TODO_do_not_ggc_collect (1 << 1) |
#define | TODO_cleanup_cfg (1 << 5) |
#define | TODO_verify_il (1 << 6) |
#define | TODO_dump_symtab (1 << 7) |
#define | TODO_remove_functions (1 << 8) |
#define | TODO_update_ssa (1 << 11) |
#define | TODO_update_ssa_no_phi (1 << 12) |
#define | TODO_update_ssa_full_phi (1 << 13) |
#define | TODO_update_ssa_only_virtuals (1 << 14) |
#define | TODO_remove_unused_locals (1 << 15) |
#define | TODO_df_finish (1 << 17) |
#define | TODO_df_verify (1 << 18) |
#define | TODO_mark_first_instance (1 << 19) |
#define | TODO_rebuild_alias (1 << 20) |
#define | TODO_update_address_taken (1 << 21) |
#define | TODO_rebuild_cgraph_edges (1 << 22) |
#define | TODO_discard_function (1 << 23) |
#define | TODO_update_ssa_any |
#define | TODO_verify_all TODO_verify_il |
#define | PENDING_TODO_force_next_scalar_cleanup (1 << 1) |
Enumerations | |
enum | opt_pass_type { GIMPLE_PASS , RTL_PASS , SIMPLE_IPA_PASS , IPA_PASS } |
enum | pass_positioning_ops { PASS_POS_INSERT_AFTER , PASS_POS_INSERT_BEFORE , PASS_POS_REPLACE } |
Variables | |
opt_pass * | current_pass |
#define PENDING_TODO_force_next_scalar_cleanup (1 << 1) |
To-do flags for pending_TODOs.
Tell the next scalar cleanup pass that there is work for it to do.
Referenced by tree_predictive_commoning(), and tree_unroll_loops_completely_1().
#define PROP_assumptions_done |
Referenced by symbol_table::compile(), execute_one_pass(), and cgraph_node::verify_node().
#define PROP_cfg (1 << 3) |
#define PROP_cfglayout (1 << 9) /* cfglayout mode on RTL @endverbatim */ |
Referenced by dump_properties(), and skip_pass().
#define PROP_gimple (PROP_gimple_any | PROP_gimple_lcf | PROP_gimple_leh | PROP_gimple_lomp) |
#define PROP_gimple_any (1 << 0) /* entire gimple grammar @endverbatim */ |
Pass properties.
Referenced by dump_function_to_file(), dump_properties(), gimplify_call_expr(), gimplify_function_tree(), init_lowered_empty_function(), omp_context_selector_matches(), omp_maybe_offloaded(), and omp_resolve_declare_variant().
#define PROP_gimple_eomp (1 << 13) /* no OpenMP directives @endverbatim */ |
#define PROP_gimple_lbitint (1 << 20) /* lowered large _BitInt @endverbatim */ |
Referenced by build_call_internal(), and maybe_optimize_var().
#define PROP_gimple_lcf (1 << 1) /* lowered control flow @endverbatim */ |
Referenced by dump_function_to_file(), dump_properties(), and init_lowered_empty_function().
#define PROP_gimple_lcx (1 << 10) /* lowered complex @endverbatim */ |
Referenced by dump_properties().
#define PROP_gimple_leh (1 << 2) /* lowered eh @endverbatim */ |
Referenced by dump_properties(), and init_lowered_empty_function().
#define PROP_gimple_lomp (1 << 8) /* lowered OpenMP directives @endverbatim */ |
Referenced by dump_properties().
#define PROP_gimple_lomp_dev (1 << 16) /* done omp_device_lower @endverbatim */ |
Referenced by dump_properties(), and expand_call_inline().
#define PROP_gimple_lva (1 << 14) /* No va_arg internal function. @endverbatim */ |
Referenced by expand_call_inline(), expand_ifn_va_arg(), and gimplify_function_tree().
#define PROP_gimple_lvec (1 << 12) /* lowered vector @endverbatim */ |
#define PROP_gimple_opt_math |
Referenced by canonicalize_math_p(), and canonicalize_math_p().
#define PROP_loop_opts_done |
Referenced by jt_path_registry::cancel_invalid_paths(), do_not_sink(), and back_threader_profitability::profitable_path_p().
#define PROP_loops (1 << 11) /* preserve loop structures @endverbatim */ |
#define PROP_no_crit_edges (1 << 6) |
Referenced by dump_properties().
#define PROP_objsz (1 << 4) /* object sizes computed @endverbatim */ |
Referenced by copy_reference_ops_from_ref(), valueize_refs_1(), vn_reference_insert(), and vn_reference_lookup().
#define PROP_rtl (1 << 7) |
#define PROP_rtl_split_insns (1 << 17) /* RTL has insns split. @endverbatim */ |
#define PROP_ssa (1 << 5) |
#define TODO_cleanup_cfg (1 << 5) |
Referenced by autofdo::auto_profile(), canonicalize_induction_variables(), do_ssa_ccp(), eliminate_dom_walker::eliminate_cleanup(), eliminate_dom_walker::eliminate_stmt(), loop_distribution::execute(), execute_cleanup_cfg_post_optimizing(), execute_cleanup_eh_1(), execute_copy_prop(), execute_early_expand_coro_ifns(), execute_expand_omp(), execute_fixup_cfg(), execute_function_todo(), execute_reassoc(), execute_split_functions(), execute_split_paths(), expand_vector_operations(), gimple_lower_bitint(), gimple_ssa_isolate_erroneous_paths(), make_forwarders_with_degenerate_phis(), move_computations_worker(), optimize_inline_calls(), perform_intra_sra(), perform_tree_ssa_dce(), process_bb(), sink_common_stores_to_bb(), strip_predict_hints(), back_threader::thread_blocks(), tree_if_conversion(), tree_loop_unroll_and_jam(), tree_lower_complex(), tree_optimize_tail_calls_1(), tree_predictive_commoning(), tree_profiling(), tree_ssa_prefetch_arrays(), tree_ssa_split_loops(), tree_ssa_unswitch_loops(), try_vectorize_loop_1(), and tsan_pass().
#define TODO_df_finish (1 << 17) |
Call df_finish at the end of the pass. This is done after all of the dumpers have been allowed to run so that they have access to the instance before it is destroyed.
Referenced by execute_todo().
#define TODO_df_verify (1 << 18) |
Call df_verify at the end of the pass if checking is enabled.
Referenced by execute_todo().
#define TODO_discard_function (1 << 23) |
Release function body (unless assumption function) and stop pass manager.
Referenced by execute_oacc_loop_designation(), and execute_one_pass().
#define TODO_do_not_ggc_collect (1 << 1) |
To-do flags.
Referenced by execute_one_ipa_transform_pass(), and execute_one_pass().
#define TODO_dump_symtab (1 << 7) |
Referenced by execute_todo().
#define TODO_mark_first_instance (1 << 19) |
Internally used for the first instance of a pass.
Referenced by add_pass_instance(), and position_pass().
#define TODO_rebuild_alias (1 << 20) |
Rebuild aliasing info.
Referenced by execute_function_todo().
#define TODO_rebuild_cgraph_edges (1 << 22) |
Rebuild the callgraph edges.
Referenced by execute_feedback_split_functions(), and execute_function_todo().
#define TODO_remove_functions (1 << 8) |
Referenced by execute_todo(), ipa_devirt(), ipa_icf::ipa_icf_driver(), ipa_inline(), and propagate().
#define TODO_remove_unused_locals (1 << 15) |
Some passes leave unused local variables that can be removed from cfun->local_decls. This reduces the size of dump files and the memory footprint for VAR_DECLs.
Referenced by execute_function_todo(), and optimize_inline_calls().
#define TODO_update_address_taken (1 << 21) |
Rebuild the addressable-vars bitmap and do register promotion.
Referenced by execute_function_todo(), and optimize_inline_calls().
#define TODO_update_ssa (1 << 11) |
To-do flags for calls to update_ssa.
Update the SSA form inserting PHI nodes for newly exposed symbols and virtual names marked for updating. When updating real names, only insert PHI nodes for a real name O_j in blocks reached by all the new and old definitions for O_j. If the iterated dominance frontier for O_j is not pruned, we may end up inserting PHI nodes in blocks that have one or more edges with no incoming definition for O_j. This would lead to uninitialized warnings for O_j's symbol.
Referenced by autofdo::afdo_annotate_cfg(), autofdo::afdo_vpt_for_early_inline(), canonicalize_induction_variables(), do_ssa_ccp(), autofdo::early_inline(), loop_distribution::execute(), execute_cleanup_cfg_post_optimizing(), execute_fixup_cfg(), execute_ranger_vrp(), execute_split_functions(), execute_update_addresses_taken(), expand_ifn_va_arg_1(), expand_omp_taskreg(), expand_thunk(), gimple_lower_bitint(), gimple_ssa_isolate_erroneous_paths(), insert_updated_phi_nodes_for(), loop_invariant_motion_in_fun(), optimize_inline_calls(), perform_intra_sra(), perform_tree_ssa_dce(), repair_loop_structures(), rewrite_into_loop_closed_ssa_1(), simd_clone_adjust(), tree_function_versioning(), tree_predictive_commoning(), tree_profiling(), tree_ssa_split_loops(), tree_transform_and_unroll_loop(), tree_unroll_loops_completely(), and update_ssa().
#define TODO_update_ssa_any |
Internally used in execute_function_todo().
Referenced by autofdo::afdo_vpt_for_early_inline(), autofdo::early_inline(), execute_function_todo(), execute_todo(), and inline_transform().
#define TODO_update_ssa_full_phi (1 << 13) |
Insert PHI nodes everywhere they are needed. No pruning of the IDF is done. This is used by passes that need the PHI nodes for O_j even if it means that some arguments will come from the default definition of O_j's symbol. WARNING: If you need to use this flag, chances are that your pass may be doing something wrong. Inserting PHI nodes for an old name where not all edges carry a new replacement may lead to silent codegen errors or spurious uninitialized warnings.
Referenced by insert_updated_phi_nodes_for(), and update_ssa().
#define TODO_update_ssa_no_phi (1 << 12) |
Update the SSA form without inserting any new PHI nodes at all. This is used by passes that have either inserted all the PHI nodes themselves or passes that need only to patch use-def and def-def chains for virtuals (e.g., DCE).
Referenced by gen_parallel_loop(), rewrite_into_loop_closed_ssa_1(), tree_transform_and_unroll_loop(), tree_unswitch_single_loop(), update_ssa(), vect_loop_versioning(), version_loop_by_alias_check(), and version_loop_for_if_conversion().
#define TODO_update_ssa_only_virtuals (1 << 14) |
Passes that update the SSA form on their own may want to delegate the updating of virtual names to the generic updater. Since FUD chains are easier to maintain, this simplifies the work they need to do. NOTE: If this flag is used, any OLD->NEW mappings for real names are explicitly destroyed and only the symbols marked for renaming are processed.
Referenced by access_with_size_object_size(), compute_fn_summary(), execute_cleanup_eh_1(), execute_expand_omp(), cgraph_node::expand(), cgraph_node::get_body(), gimple_lower_bitint(), inline_transform(), ipa_tm_transform_clone(), ipa_tm_transform_transaction(), ipcp_transform_function(), sink_clobbers(), strdup_object_size(), tree_optimize_tail_calls_1(), tree_predictive_commoning(), tree_ssa_prefetch_arrays(), tree_unroll_loops_completely(), try_vectorize_loop_1(), update_ssa(), and vect_transform_loops().
#define TODO_verify_all TODO_verify_il |
Referenced by execute_function_todo().
#define TODO_verify_il (1 << 6) |
Referenced by execute_function_todo(), and execute_one_pass().
enum opt_pass_type |
enum pass_positioning_ops |
|
extern |
Call from the debugger to get the current pass name.
References print_current_pass().
|
extern |
Disable pass specified by ARG.
References enable_disable_pass().
Referenced by handle_common_deferred_options().
Declare for plugins.
If we are in IPA mode (i.e., current_function_decl is NULL), call function CALLBACK for every function in the call graph. Otherwise, call CALLBACK on the current function. This function is global so that plugins can use it.
References symbol_table::add_cgraph_duplication_hook(), symbol_table::add_cgraph_insertion_hook(), symbol_table::add_cgraph_removal_hook(), cfun, symbol_table::cgraph_count, hash_set< KeyId, Lazy, Traits >::contains(), current_function_decl, symtab_node::decl, DECL_STRUCT_FUNCTION, duplicate_cgraph_node_to_order(), free(), cgraph_node::has_gimple_body_p(), i, insert_cgraph_node_to_order(), ipa_reverse_postorder(), NULL, pop_cfun(), cgraph_node::process, push_cfun(), symbol_table::remove_cgraph_duplication_hook(), symbol_table::remove_cgraph_insertion_hook(), remove_cgraph_node_from_order(), symbol_table::remove_cgraph_removal_hook(), and symtab.
Referenced by execute_ipa_pass_list().
|
extern |
Dump all optimization passes.
References gcc::pass_manager::dump_passes(), g, and gcc::context::get_passes().
Referenced by symbol_table::finalize_compilation_unit().
|
extern |
This function is called when an internal compiler error is encountered. Ensure that function dump is made available before compiler is aborted.
References cfun, current_pass, symbol_table::dump(), dump_file, dump_file_name, dump_flags, execute_function_dump(), finish_graph_dump_file(), fnotice(), GIMPLE_PASS, IPA_PASS, pass_data::name, PROP_cfg, RTL_PASS, symtab, TDF_GRAPH, and pass_data::type.
Referenced by internal_error_function().
|
extern |
Enable pass specified by ARG.
References enable_disable_pass().
Referenced by handle_common_deferred_options().
|
extern |
Execute stmt fixup hooks of all IPA passes for NODE and STMTS.
References gcc::pass_manager::all_regular_ipa_passes, execute_ipa_stmt_fixups(), g, and gcc::context::get_passes().
Referenced by input_function().
|
extern |
For the current function, execute all ipa transforms.
References account_profile(), cfun, check_profile_consistency(), cgraph_node::clones, current_function_decl, symtab_node::decl, DECL_STRUCT_FUNCTION, execute_one_ipa_transform_pass(), g, gcc_checking_assert, cgraph_node::get(), gcc::pass_manager::get_pass_for_id(), gcc::context::get_passes(), IPA_PASS, cgraph_node::ipa_transforms_to_apply, cgraph_node::materialize_clone(), cgraph_node::next_sibling_clone, pop_cfun(), PROP_gimple, push_cfun(), RTL_PASS, and pass_data::type.
Referenced by cgraph_node::expand(), and cgraph_node::get_body().
|
extern |
Same as execute_pass_list but assume that subpasses of IPA passes are local passes.
References cfun, current_function_decl, do_per_function_toporder(), execute_ipa_pass_list(), execute_one_pass(), execute_pass_list(), gcc_assert, gcc_unreachable, GIMPLE_PASS, invoke_plugin_callbacks(), IPA_PASS, opt_pass::next, NULL, symbol_table::process_new_functions(), SIMPLE_IPA_PASS, opt_pass::sub, symtab, and pass_data::type.
Referenced by symbol_table::compile(), execute_ipa_pass_list(), and ipa_passes().
|
extern |
Execute summary generation for all of the passes in IPA_PASS.
References cfun, current_pass, opt_pass::gate(), ipa_opt_pass_d::generate_summary, IPA_PASS, opt_pass::next, pass_fini_dump_file(), pass_init_dump_file(), timevar_pop(), timevar_push(), pass_data::tv_id, and pass_data::type.
Referenced by ipa_passes().
Execute PASS.
References account_profile(), account_profile_1(), account_profile_in_list(), CDI_DOMINATORS, CDI_POST_DOMINATORS, cfun, check_profile_consistency(), clear_last_verified(), current_function_decl, current_pass, do_per_function(), dom_info_available_p(), dump_file, opt_pass::execute(), execute_function_dump(), execute_todo(), FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, free_dominance_info(), opt_pass::gate(), gcc_assert, cgraph_node::get(), in_gimple_form, cgraph_node::inlined_to, invoke_plugin_callbacks(), IPA_PASS, cgraph_node::ipa_transforms_to_apply, pass_data::name, NULL, override_gate_status(), pass_fini_dump_file(), pass_init_dump_file(), pop_cfun(), symbol_table::process_new_functions(), PROP_assumptions_done, PROP_cfg, PROP_gimple, pass_data::properties_required, redirect_edge_var_map_empty(), cgraph_node::release_body(), report_heap_memory_use(), RTL_PASS, should_skip_pass_p(), SIMPLE_IPA_PASS, skip_pass(), opt_pass::static_pass_number, opt_pass::sub, symtab, timevar_pop(), timevar_push(), TODO_discard_function, TODO_do_not_ggc_collect, pass_data::todo_flags_finish, pass_data::todo_flags_start, TODO_verify_il, pass_data::tv_id, TV_NONE, pass_data::type, update_properties_after_pass(), verify_curr_properties(), and verify_interpass_invariants().
Referenced by execute_ipa_pass_list(), and execute_pass_list_1().
References CDI_DOMINATORS, CDI_POST_DOMINATORS, function::cfg, cfun, execute_pass_list_1(), free_dominance_info(), and gcc_assert.
Referenced by cgraph_node::add_new_function(), cgraph_node::analyze(), gcc::pass_manager::execute_early_local_passes(), execute_ipa_pass_list(), cgraph_node::expand(), and run_rtl_passes().
|
extern |
Called by local passes to see if function is called by already processed nodes. Because we process nodes in topological order, this means that function is in recursive cycle or we introduced new direct calls.
References cgraph_edge::caller, current_function_decl, symtab_node::decl, cgraph_node::dump(), dump_file, cgraph_node::get(), cgraph_node::has_gimple_body_p(), cgraph_node::inlined_to, cgraph_edge::next_caller, NULL, cgraph_node::process, and TREE_ASM_WRITTEN.
Referenced by skip_function_for_local_pure_const().
|
extern |
Read all the summaries for all_regular_ipa_passes.
References gcc::pass_manager::all_regular_ipa_passes, g, gcc::context::get_passes(), and ipa_read_optimization_summaries_1().
|
extern |
Read all the summaries for all_regular_ipa_passes.
References gcc::pass_manager::all_regular_ipa_passes, g, gcc::context::get_passes(), and ipa_read_summaries_1().
|
extern |
|
extern |
Write out summaries for all the nodes in the callgraph.
References symtab_node::alias, symbol_table::cgraph_count, compute_ltrans_boundary(), symtab_node::decl, cgraph_node::declare_variant_alt, symtab_node::definition, dump_begin(), dump_end(), dump_file, FOR_EACH_DEFINED_FUNCTION, FOR_EACH_DEFINED_VARIABLE, free(), gcc_assert, gimple_has_body_p(), i, ipa_reverse_postorder(), ipa_write_summaries_1(), lto_prepare_function_for_streaming(), lto_set_symtab_encoder_in_partition(), lto_symtab_encoder_new(), symtab_node::need_lto_streaming, NULL, seen_error(), select_what_to_stream(), streamer_dump_file, symtab, and TDI_lto_stream_out.
Referenced by ipa_passes().
|
extern |
|
extern |
Make an instance of the analyzer pass.
|
extern |
References pass_data_array_bounds.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Instantiate a hardcmp pass.
|
extern |
Instantiate a hardcbr pass.
|
extern |
Instantiate a hardcfr pass.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
IPA Passes
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Create a strub mode pass.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Construct and return a store merging pass object.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Return a new instance of the pass.
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Flush PASS dump file.
This is non-static so that plugins can use it.
References gcc::dump_manager::dump_finish(), g, gcc::context::get_dumps(), release_dump_file_name(), opt_pass::static_pass_number, timevar_pop(), and timevar_push().
Referenced by execute_ipa_stmt_fixups(), execute_ipa_summary_passes(), execute_one_ipa_transform_pass(), execute_one_pass(), ipa_read_optimization_summaries_1(), ipa_read_summaries_1(), ipa_write_optimization_summaries_1(), and ipa_write_summaries_2().
Initialize pass dump file.
This is non-static so that the plugins can use it.
References cfun, clean_graph_dump_file(), current_function_decl, dump_file, dump_file_name, dump_flags, dump_function_header(), gcc::dump_manager::dump_initialized_p(), gcc::dump_manager::dump_start(), g, gcc::dump_manager::get_dump_file_info(), gcc::dump_manager::get_dump_file_name(), gcc::context::get_dumps(), dump_file_info::graph_dump_initialized, PROP_cfg, release_dump_file_name(), opt_pass::static_pass_number, TDF_GIMPLE, TDF_GRAPH, timevar_pop(), and timevar_push().
Referenced by execute_ipa_stmt_fixups(), execute_ipa_summary_passes(), execute_one_ipa_transform_pass(), execute_one_pass(), ipa_read_optimization_summaries_1(), ipa_read_summaries_1(), ipa_write_optimization_summaries_1(), and ipa_write_summaries_2().
|
extern |
Call from anywhere to find out what pass this is. Useful for printing out debugging information deep inside an service routine.
References current_pass, pass_data::name, and opt_pass::static_pass_number.
Referenced by debug_pass().
|
extern |
Iterate over the pass tree allocating dump file numbers. We want to do this depth first, and independent of whether the pass is enabled or not.
References g, gcc::context::get_passes(), and gcc::pass_manager::register_one_dump_file().
Referenced by gcc::dump_manager::register_pass().
|
extern |
References g, gcc::context::get_passes(), i, register_pass_info::pass, and gcc::pass_manager::register_pass().
|
extern |
Registers a new pass. Either fill out the register_pass_info or specify the individual parameters. The pass object is expected to have been allocated using operator new and the pass manager takes the ownership of the pass object.
Hooks a new pass into the pass lists. PASS_INFO - pass information that specifies the opt_pass object, reference pass, instance number, and how to position the pass
References g, gcc::context::get_passes(), and gcc::pass_manager::register_pass().
Referenced by register_callback().
|
extern |
Runs tail merge optimization.
References all_clusters, alloc_cluster_vectors(), apply_clusters(), BITMAP_ALLOC, BITMAP_FREE, calculate_dominance_info(), CDI_DOMINATORS, cfun, current_function_decl, delete_cluster_vectors(), delete_unreachable_blocks(), delete_worklist(), dom_info_available_p(), dump_file, dump_flags, dump_function_to_file(), find_clusters(), free_dominance_info(), gcc_assert, init_worklist(), mark_virtual_operands_for_renaming(), MAY_HAVE_DEBUG_BIND_STMTS, NULL, reset_cluster_vectors(), same_succ_htab, split_edges_for_insertion(), TDF_DETAILS, timevar_pop(), timevar_push(), update_bbs, update_debug_stmts(), update_worklist(), and worklist.
|
extern |
Current optimization pass.
This is used for debugging. It allows the current pass to printed from anywhere in compilation. The variable current_pass is also used for statistics and plugins.
Referenced by dump_context::begin_next_optinfo(), connect_traces(), curr_statistics_hash(), emergency_dump_function(), execute_ipa_stmt_fixups(), execute_ipa_summary_passes(), execute_one_ipa_transform_pass(), execute_one_pass(), cgraph_node::get_body(), ipa_read_optimization_summaries_1(), ipa_read_summaries_1(), ipa_write_optimization_summaries_1(), ipa_write_summaries_2(), print_current_pass(), pure_const_generate_summary(), pure_const_read_summary(), statistics_counter_event(), statistics_fini_pass(), statistics_fini_pass_2(), and statistics_histogram_event().