#include <pass_manager.h>
◆ pass_manager()
pass_manager::pass_manager |
( |
context * | ctxt | ) |
|
Construct the pass tree. The sequencing of passes is driven by
the cgraph routines:
finalize_compilation_unit ()
for each node N in the cgraph
cgraph_analyze_function (N)
cgraph_lower_function (N) -> all_lowering_passes
If we are optimizing, compile is then invoked:
compile ()
ipa_passes () -> all_small_ipa_passes
-> Analysis of all_regular_ipa_passes
* possible LTO streaming at compilation time *
-> Execution of all_regular_ipa_passes
* possible LTO streaming at link time *
-> all_late_ipa_passes
expand_all_functions ()
for each node N in the cgraph
expand_function (N) -> Transformation of all_regular_ipa_passes
-> all_passes
References all_late_ipa_passes, all_lowering_passes, all_passes, all_regular_ipa_passes, all_small_ipa_passes, GCC_PASS_LISTS, and register_dump_files().
◆ ~pass_manager()
pass_manager::~pass_manager |
( |
| ) |
|
◆ create_pass_tab()
void pass_manager::create_pass_tab |
( |
void | | ) |
const |
|
private |
◆ dump_passes()
void pass_manager::dump_passes |
( |
| ) |
const |
References all_late_ipa_passes, all_lowering_passes, all_passes, all_regular_ipa_passes, all_small_ipa_passes, create_pass_tab(), current_function_decl, dump_pass_list(), cgraph_node::get_create(), pop_dummy_function(), push_dummy_function(), and cgraph_node::remove().
Referenced by dump_passes().
◆ dump_profile_report()
void pass_manager::dump_profile_report |
( |
| ) |
const |
References dump_begin(), dump_end(), dump_file, profile_record::dyn_mismatched_count_in, profile_record::dyn_mismatched_prob_out, gcc::dump_manager::get_dump_file_info(), gcc::context::get_dumps(), GIMPLE_PASS, i, m_ctxt, pass_data::name, NULL, dump_file_info::num, profile_record::num_mismatched_count_in, profile_record::num_mismatched_prob_out, passes_by_id, passes_by_id_size, RTL_PASS, profile_record::size, TDI_profile_report, profile_record::time, and pass_data::type.
Referenced by dump_profile_report().
◆ execute_early_local_passes()
void pass_manager::execute_early_local_passes |
( |
| ) |
|
◆ execute_pass_mode_switching()
unsigned int pass_manager::execute_pass_mode_switching |
( |
| ) |
|
◆ finish_optimization_passes()
void pass_manager::finish_optimization_passes |
( |
void | | ) |
|
References gcc::dump_manager::dump_finish(), gcc::dump_manager::dump_start(), end_branch_prob(), finish_graph_dump_file(), free(), gcc::dump_manager::get_dump_file_info(), gcc::dump_manager::get_dump_file_name(), gcc::context::get_dumps(), dump_file_info::graph_dump_initialized, i, m_ctxt, NULL, TDI_end, timevar_pop(), and timevar_push().
Referenced by finalize().
◆ get_clean_slate()
opt_pass * gcc::pass_manager::get_clean_slate |
( |
| ) |
const |
|
inline |
◆ get_pass_by_name()
opt_pass * pass_manager::get_pass_by_name |
( |
const char * | name | ) |
|
◆ get_pass_for_id()
opt_pass * pass_manager::get_pass_for_id |
( |
int | id | ) |
const |
◆ get_pass_mode_switching()
opt_pass * gcc::pass_manager::get_pass_mode_switching |
( |
| ) |
const |
|
inline |
◆ get_pass_peephole2()
opt_pass * gcc::pass_manager::get_pass_peephole2 |
( |
| ) |
const |
|
inline |
◆ get_pass_profile()
opt_pass * gcc::pass_manager::get_pass_profile |
( |
| ) |
const |
|
inline |
◆ get_pass_split_all_insns()
opt_pass * gcc::pass_manager::get_pass_split_all_insns |
( |
| ) |
const |
|
inline |
◆ get_rest_of_compilation()
opt_pass * gcc::pass_manager::get_rest_of_compilation |
( |
| ) |
const |
|
inline |
◆ register_dump_files()
void pass_manager::register_dump_files |
( |
opt_pass * | pass | ) |
|
|
private |
◆ register_one_dump_file()
void pass_manager::register_one_dump_file |
( |
opt_pass * | pass | ) |
|
References CONST_CAST, DK_ipa, DK_rtl, DK_tree, gcc::dump_manager::dump_register(), free(), gcc::context::get_dumps(), GIMPLE_PASS, IPA_PASS, m_ctxt, pass_data::name, NULL, OPTGROUP_IPA, OPTGROUP_NONE, OPTGROUP_OTHER, pass_data::optinfo_flags, register_pass_name(), set_pass_for_id(), SIMPLE_IPA_PASS, opt_pass::static_pass_number, and pass_data::type.
Referenced by register_dump_files(), and register_one_dump_file().
◆ register_pass()
References added_pass_nodes, all_late_ipa_passes, all_lowering_passes, all_passes, all_regular_ipa_passes, all_small_ipa_passes, fatal_error(), gcc::context::get_dumps(), input_location, m_ctxt, pass_data::name, pass_list_node::next, pass_list_node::pass, register_pass_info::pass, position_pass(), register_pass_info::ref_pass_instance_number, register_pass_info::reference_pass_name, and gcc::dump_manager::register_pass().
Referenced by register_pass(), and register_pass().
◆ register_pass_name()
void pass_manager::register_pass_name |
( |
opt_pass * | pass, |
|
|
const char * | name ) |
◆ set_pass_for_id()
void pass_manager::set_pass_for_id |
( |
int | id, |
|
|
opt_pass * | pass ) |
|
private |
◆ all_late_ipa_passes
opt_pass* gcc::pass_manager::all_late_ipa_passes |
◆ all_lowering_passes
opt_pass* gcc::pass_manager::all_lowering_passes |
◆ all_passes
◆ all_regular_ipa_passes
opt_pass* gcc::pass_manager::all_regular_ipa_passes |
◆ all_small_ipa_passes
opt_pass* gcc::pass_manager::all_small_ipa_passes |
◆ m_ctxt
◆ m_name_to_pass_map
◆ pass_lists
◆ passes_by_id
opt_pass** gcc::pass_manager::passes_by_id |
◆ passes_by_id_size
int gcc::pass_manager::passes_by_id_size |
The documentation for this class was generated from the following files: