diff options
Diffstat (limited to 'gcc/tree-pass.h')
-rw-r--r-- | gcc/tree-pass.h | 466 |
1 files changed, 238 insertions, 228 deletions
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 41f7d176c40..41d5d92c8a9 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -330,237 +330,247 @@ struct register_pass_info enum pass_positioning_ops pos_op; /* how to insert the new pass. */ }; -extern struct gimple_opt_pass pass_mudflap_1; -extern struct gimple_opt_pass pass_mudflap_2; -extern struct gimple_opt_pass pass_asan; -extern struct gimple_opt_pass pass_asan_O0; -extern struct gimple_opt_pass pass_tsan; -extern struct gimple_opt_pass pass_tsan_O0; -extern struct gimple_opt_pass pass_lower_cf; -extern struct gimple_opt_pass pass_refactor_eh; -extern struct gimple_opt_pass pass_lower_eh; -extern struct gimple_opt_pass pass_lower_eh_dispatch; -extern struct gimple_opt_pass pass_lower_resx; -extern struct gimple_opt_pass pass_build_cfg; -extern struct gimple_opt_pass pass_early_tree_profile; -extern struct gimple_opt_pass pass_cleanup_eh; -extern struct gimple_opt_pass pass_sra; -extern struct gimple_opt_pass pass_sra_early; -extern struct gimple_opt_pass pass_early_ipa_sra; -extern struct gimple_opt_pass pass_tail_recursion; -extern struct gimple_opt_pass pass_tail_calls; -extern struct gimple_opt_pass pass_tree_loop; -extern struct gimple_opt_pass pass_tree_loop_init; -extern struct gimple_opt_pass pass_lim; -extern struct gimple_opt_pass pass_tree_unswitch; -extern struct gimple_opt_pass pass_predcom; -extern struct gimple_opt_pass pass_iv_canon; -extern struct gimple_opt_pass pass_scev_cprop; -extern struct gimple_opt_pass pass_empty_loop; -extern struct gimple_opt_pass pass_record_bounds; -extern struct gimple_opt_pass pass_graphite; -extern struct gimple_opt_pass pass_graphite_transforms; -extern struct gimple_opt_pass pass_if_conversion; -extern struct gimple_opt_pass pass_loop_distribution; -extern struct gimple_opt_pass pass_vectorize; -extern struct gimple_opt_pass pass_slp_vectorize; -extern struct gimple_opt_pass pass_complete_unroll; -extern struct gimple_opt_pass pass_complete_unrolli; -extern struct gimple_opt_pass pass_parallelize_loops; -extern struct gimple_opt_pass pass_loop_prefetch; -extern struct gimple_opt_pass pass_iv_optimize; -extern struct gimple_opt_pass pass_tree_loop_done; -extern struct gimple_opt_pass pass_ch; -extern struct gimple_opt_pass pass_ccp; -extern struct gimple_opt_pass pass_phi_only_cprop; -extern struct gimple_opt_pass pass_build_ssa; -extern struct gimple_opt_pass pass_build_alias; -extern struct gimple_opt_pass pass_build_ealias; -extern struct gimple_opt_pass pass_dominator; -extern struct gimple_opt_pass pass_dce; -extern struct gimple_opt_pass pass_dce_loop; -extern struct gimple_opt_pass pass_cd_dce; -extern struct gimple_opt_pass pass_call_cdce; -extern struct gimple_opt_pass pass_merge_phi; -extern struct gimple_opt_pass pass_split_crit_edges; -extern struct gimple_opt_pass pass_pre; +extern gimple_opt_pass *make_pass_mudflap_1 (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_mudflap_2 (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_asan (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_asan_O0 (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tsan (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tsan_O0 (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_cf (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_refactor_eh (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_eh (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_eh_dispatch (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_resx (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_build_cfg (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_early_tree_profile (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_cleanup_eh (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_sra (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_sra_early (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_early_ipa_sra (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tail_recursion (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tail_calls (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tree_loop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tree_loop_init (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lim (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tree_unswitch (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_predcom (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_iv_canon (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_scev_cprop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_empty_loop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_record_bounds (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_graphite (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_graphite_transforms (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_if_conversion (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_loop_distribution (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_vectorize (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_slp_vectorize (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_complete_unroll (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_complete_unrolli (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_parallelize_loops (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_loop_prefetch (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_iv_optimize (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tree_loop_done (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_ch (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_ccp (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_phi_only_cprop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_build_ssa (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_build_alias (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_build_ealias (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_dominator (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_dce (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_dce_loop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_cd_dce (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_call_cdce (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_merge_phi (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_split_crit_edges (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_pre (gcc::context *ctxt); extern unsigned int tail_merge_optimize (unsigned int); -extern struct gimple_opt_pass pass_profile; -extern struct gimple_opt_pass pass_strip_predict_hints; -extern struct gimple_opt_pass pass_lower_complex_O0; -extern struct gimple_opt_pass pass_lower_complex; -extern struct gimple_opt_pass pass_lower_vector; -extern struct gimple_opt_pass pass_lower_vector_ssa; -extern struct gimple_opt_pass pass_lower_omp; -extern struct gimple_opt_pass pass_diagnose_omp_blocks; -extern struct gimple_opt_pass pass_expand_omp; -extern struct gimple_opt_pass pass_expand_omp_ssa; -extern struct gimple_opt_pass pass_object_sizes; -extern struct gimple_opt_pass pass_strlen; -extern struct gimple_opt_pass pass_fold_builtins; -extern struct gimple_opt_pass pass_stdarg; -extern struct gimple_opt_pass pass_early_warn_uninitialized; -extern struct gimple_opt_pass pass_late_warn_uninitialized; -extern struct gimple_opt_pass pass_cse_reciprocals; -extern struct gimple_opt_pass pass_cse_sincos; -extern struct gimple_opt_pass pass_optimize_bswap; -extern struct gimple_opt_pass pass_optimize_widening_mul; -extern struct gimple_opt_pass pass_warn_function_return; -extern struct gimple_opt_pass pass_warn_function_noreturn; -extern struct gimple_opt_pass pass_cselim; -extern struct gimple_opt_pass pass_phiopt; -extern struct gimple_opt_pass pass_forwprop; -extern struct gimple_opt_pass pass_phiprop; -extern struct gimple_opt_pass pass_tree_ifcombine; -extern struct gimple_opt_pass pass_dse; -extern struct gimple_opt_pass pass_nrv; -extern struct gimple_opt_pass pass_rename_ssa_copies; -extern struct gimple_opt_pass pass_sink_code; -extern struct gimple_opt_pass pass_fre; -extern struct gimple_opt_pass pass_check_data_deps; -extern struct gimple_opt_pass pass_copy_prop; -extern struct gimple_opt_pass pass_vrp; -extern struct gimple_opt_pass pass_uncprop; -extern struct gimple_opt_pass pass_return_slot; -extern struct gimple_opt_pass pass_reassoc; -extern struct gimple_opt_pass pass_rebuild_cgraph_edges; -extern struct gimple_opt_pass pass_remove_cgraph_callee_edges; -extern struct gimple_opt_pass pass_build_cgraph_edges; -extern struct gimple_opt_pass pass_local_pure_const; -extern struct gimple_opt_pass pass_tracer; -extern struct gimple_opt_pass pass_warn_unused_result; -extern struct gimple_opt_pass pass_diagnose_tm_blocks; -extern struct gimple_opt_pass pass_lower_tm; -extern struct gimple_opt_pass pass_tm_init; -extern struct gimple_opt_pass pass_tm_mark; -extern struct gimple_opt_pass pass_tm_memopt; -extern struct gimple_opt_pass pass_tm_edges; -extern struct gimple_opt_pass pass_split_functions; -extern struct gimple_opt_pass pass_feedback_split_functions; -extern struct gimple_opt_pass pass_strength_reduction; +extern gimple_opt_pass *make_pass_profile (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_strip_predict_hints (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_complex_O0 (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_complex (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_vector (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_vector_ssa (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_omp (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_diagnose_omp_blocks (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_expand_omp (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_expand_omp_ssa (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_object_sizes (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_strlen (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_fold_builtins (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_stdarg (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_early_warn_uninitialized (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_late_warn_uninitialized (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_cse_reciprocals (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_cse_sincos (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_optimize_bswap (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_optimize_widening_mul (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_warn_function_return (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_warn_function_noreturn (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_cselim (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_phiopt (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_forwprop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_phiprop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tree_ifcombine (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_dse (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_nrv (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_rename_ssa_copies (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_sink_code (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_fre (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_check_data_deps (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_copy_prop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_vrp (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_uncprop (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_return_slot (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_reassoc (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_rebuild_cgraph_edges (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_remove_cgraph_callee_edges (gcc::context + *ctxt); +extern gimple_opt_pass *make_pass_build_cgraph_edges (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_local_pure_const (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tracer (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_warn_unused_result (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_diagnose_tm_blocks (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_lower_tm (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tm_init (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tm_mark (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tm_memopt (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_tm_edges (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_split_functions (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_feedback_split_functions (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_strength_reduction (gcc::context *ctxt); /* IPA Passes */ -extern struct simple_ipa_opt_pass pass_ipa_lower_emutls; -extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; -extern struct simple_ipa_opt_pass pass_ipa_tree_profile; - -extern struct simple_ipa_opt_pass pass_early_local_passes; - -extern struct ipa_opt_pass_d pass_ipa_whole_program_visibility; -extern struct ipa_opt_pass_d pass_ipa_lto_gimple_out; -extern struct simple_ipa_opt_pass pass_ipa_increase_alignment; -extern struct ipa_opt_pass_d pass_ipa_inline; -extern struct simple_ipa_opt_pass pass_ipa_free_lang_data; -extern struct simple_ipa_opt_pass pass_ipa_free_inline_summary; -extern struct ipa_opt_pass_d pass_ipa_cp; -extern struct ipa_opt_pass_d pass_ipa_reference; -extern struct ipa_opt_pass_d pass_ipa_pure_const; -extern struct simple_ipa_opt_pass pass_ipa_pta; -extern struct ipa_opt_pass_d pass_ipa_lto_finish_out; -extern struct simple_ipa_opt_pass pass_ipa_tm; -extern struct ipa_opt_pass_d pass_ipa_profile; -extern struct ipa_opt_pass_d pass_ipa_cdtor_merge; - -extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing; -extern struct gimple_opt_pass pass_init_datastructures; -extern struct gimple_opt_pass pass_fixup_cfg; - -extern struct rtl_opt_pass pass_expand; -extern struct rtl_opt_pass pass_instantiate_virtual_regs; -extern struct rtl_opt_pass pass_rtl_fwprop; -extern struct rtl_opt_pass pass_rtl_fwprop_addr; -extern struct rtl_opt_pass pass_jump; -extern struct rtl_opt_pass pass_jump2; -extern struct rtl_opt_pass pass_lower_subreg; -extern struct rtl_opt_pass pass_cse; -extern struct rtl_opt_pass pass_fast_rtl_dce; -extern struct rtl_opt_pass pass_ud_rtl_dce; -extern struct rtl_opt_pass pass_rtl_dce; -extern struct rtl_opt_pass pass_rtl_dse1; -extern struct rtl_opt_pass pass_rtl_dse2; -extern struct rtl_opt_pass pass_rtl_dse3; -extern struct rtl_opt_pass pass_rtl_cprop; -extern struct rtl_opt_pass pass_rtl_pre; -extern struct rtl_opt_pass pass_rtl_hoist; -extern struct rtl_opt_pass pass_rtl_store_motion; -extern struct rtl_opt_pass pass_cse_after_global_opts; -extern struct rtl_opt_pass pass_rtl_ifcvt; - -extern struct rtl_opt_pass pass_into_cfg_layout_mode; -extern struct rtl_opt_pass pass_outof_cfg_layout_mode; - -extern struct rtl_opt_pass pass_loop2; -extern struct rtl_opt_pass pass_rtl_loop_init; -extern struct rtl_opt_pass pass_rtl_move_loop_invariants; -extern struct rtl_opt_pass pass_rtl_unswitch; -extern struct rtl_opt_pass pass_rtl_unroll_and_peel_loops; -extern struct rtl_opt_pass pass_rtl_doloop; -extern struct rtl_opt_pass pass_rtl_loop_done; - -extern struct rtl_opt_pass pass_web; -extern struct rtl_opt_pass pass_cse2; -extern struct rtl_opt_pass pass_df_initialize_opt; -extern struct rtl_opt_pass pass_df_initialize_no_opt; -extern struct rtl_opt_pass pass_reginfo_init; -extern struct rtl_opt_pass pass_inc_dec; -extern struct rtl_opt_pass pass_stack_ptr_mod; -extern struct rtl_opt_pass pass_initialize_regs; -extern struct rtl_opt_pass pass_combine; -extern struct rtl_opt_pass pass_if_after_combine; -extern struct rtl_opt_pass pass_ree; -extern struct rtl_opt_pass pass_partition_blocks; -extern struct rtl_opt_pass pass_match_asm_constraints; -extern struct rtl_opt_pass pass_regmove; -extern struct rtl_opt_pass pass_split_all_insns; -extern struct rtl_opt_pass pass_fast_rtl_byte_dce; -extern struct rtl_opt_pass pass_lower_subreg2; -extern struct rtl_opt_pass pass_mode_switching; -extern struct rtl_opt_pass pass_sms; -extern struct rtl_opt_pass pass_sched; -extern struct rtl_opt_pass pass_ira; -extern struct rtl_opt_pass pass_reload; -extern struct rtl_opt_pass pass_clean_state; -extern struct rtl_opt_pass pass_branch_prob; -extern struct rtl_opt_pass pass_value_profile_transformations; -extern struct rtl_opt_pass pass_postreload_cse; -extern struct rtl_opt_pass pass_gcse2; -extern struct rtl_opt_pass pass_split_after_reload; -extern struct rtl_opt_pass pass_branch_target_load_optimize1; -extern struct rtl_opt_pass pass_thread_prologue_and_epilogue; -extern struct rtl_opt_pass pass_stack_adjustments; -extern struct rtl_opt_pass pass_peephole2; -extern struct rtl_opt_pass pass_if_after_reload; -extern struct rtl_opt_pass pass_regrename; -extern struct rtl_opt_pass pass_cprop_hardreg; -extern struct rtl_opt_pass pass_reorder_blocks; -extern struct rtl_opt_pass pass_branch_target_load_optimize2; -extern struct rtl_opt_pass pass_leaf_regs; -extern struct rtl_opt_pass pass_split_before_sched2; -extern struct rtl_opt_pass pass_compare_elim_after_reload; -extern struct rtl_opt_pass pass_sched2; -extern struct rtl_opt_pass pass_stack_regs; -extern struct rtl_opt_pass pass_stack_regs_run; -extern struct rtl_opt_pass pass_df_finish; -extern struct rtl_opt_pass pass_compute_alignments; -extern struct rtl_opt_pass pass_duplicate_computed_gotos; -extern struct rtl_opt_pass pass_variable_tracking; -extern struct rtl_opt_pass pass_free_cfg; -extern struct rtl_opt_pass pass_machine_reorg; -extern struct rtl_opt_pass pass_cleanup_barriers; -extern struct rtl_opt_pass pass_delay_slots; -extern struct rtl_opt_pass pass_split_for_shorten_branches; -extern struct rtl_opt_pass pass_split_before_regstack; -extern struct rtl_opt_pass pass_convert_to_eh_region_ranges; -extern struct rtl_opt_pass pass_shorten_branches; -extern struct rtl_opt_pass pass_set_nothrow_function_flags; -extern struct rtl_opt_pass pass_dwarf2_frame; -extern struct rtl_opt_pass pass_final; -extern struct rtl_opt_pass pass_rtl_seqabstr; -extern struct gimple_opt_pass pass_release_ssa_names; -extern struct gimple_opt_pass pass_early_inline; -extern struct gimple_opt_pass pass_inline_parameters; -extern struct gimple_opt_pass pass_update_address_taken; -extern struct gimple_opt_pass pass_convert_switch; +extern simple_ipa_opt_pass *make_pass_ipa_lower_emutls (gcc::context *ctxt); +extern simple_ipa_opt_pass + *make_pass_ipa_function_and_variable_visibility (gcc::context *ctxt); +extern simple_ipa_opt_pass *make_pass_ipa_tree_profile (gcc::context *ctxt); + +extern simple_ipa_opt_pass *make_pass_early_local_passes (gcc::context *ctxt); + +extern ipa_opt_pass_d *make_pass_ipa_whole_program_visibility (gcc::context + *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_lto_gimple_out (gcc::context *ctxt); +extern simple_ipa_opt_pass *make_pass_ipa_increase_alignment (gcc::context + *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_inline (gcc::context *ctxt); +extern simple_ipa_opt_pass *make_pass_ipa_free_lang_data (gcc::context *ctxt); +extern simple_ipa_opt_pass *make_pass_ipa_free_inline_summary (gcc::context + *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_cp (gcc::context *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_reference (gcc::context *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_pure_const (gcc::context *ctxt); +extern simple_ipa_opt_pass *make_pass_ipa_pta (gcc::context *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_lto_finish_out (gcc::context *ctxt); +extern simple_ipa_opt_pass *make_pass_ipa_tm (gcc::context *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_profile (gcc::context *ctxt); +extern ipa_opt_pass_d *make_pass_ipa_cdtor_merge (gcc::context *ctxt); + +extern gimple_opt_pass *make_pass_cleanup_cfg_post_optimizing (gcc::context + *ctxt); +extern gimple_opt_pass *make_pass_init_datastructures (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_fixup_cfg (gcc::context *ctxt); + +extern rtl_opt_pass *make_pass_expand (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_instantiate_virtual_regs (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_fwprop (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_fwprop_addr (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_jump (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_jump2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_lower_subreg (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_cse (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_fast_rtl_dce (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_ud_rtl_dce (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_dce (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_dse1 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_dse2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_dse3 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_cprop (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_pre (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_hoist (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_store_motion (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_cse_after_global_opts (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_ifcvt (gcc::context *ctxt); + +extern rtl_opt_pass *make_pass_into_cfg_layout_mode (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_outof_cfg_layout_mode (gcc::context *ctxt); + +extern rtl_opt_pass *make_pass_loop2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_loop_init (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_move_loop_invariants (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_unswitch (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_unroll_and_peel_loops (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_doloop (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_loop_done (gcc::context *ctxt); + +extern rtl_opt_pass *make_pass_web (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_cse2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_df_initialize_opt (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_df_initialize_no_opt (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_reginfo_init (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_inc_dec (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_stack_ptr_mod (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_initialize_regs (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_combine (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_if_after_combine (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_ree (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_partition_blocks (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_match_asm_constraints (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_regmove (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_split_all_insns (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_fast_rtl_byte_dce (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_lower_subreg2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_mode_switching (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_sms (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_sched (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_ira (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_reload (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_clean_state (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_branch_prob (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_value_profile_transformations (gcc::context + *ctxt); +extern rtl_opt_pass *make_pass_postreload_cse (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_gcse2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_split_after_reload (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_branch_target_load_optimize1 (gcc::context + *ctxt); +extern rtl_opt_pass *make_pass_thread_prologue_and_epilogue (gcc::context + *ctxt); +extern rtl_opt_pass *make_pass_stack_adjustments (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_peephole2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_if_after_reload (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_regrename (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_cprop_hardreg (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_reorder_blocks (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_branch_target_load_optimize2 (gcc::context + *ctxt); +extern rtl_opt_pass *make_pass_leaf_regs (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_split_before_sched2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_compare_elim_after_reload (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_sched2 (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_stack_regs (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_stack_regs_run (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_df_finish (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_compute_alignments (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_duplicate_computed_gotos (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_variable_tracking (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_free_cfg (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_machine_reorg (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_cleanup_barriers (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_delay_slots (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_split_for_shorten_branches (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_split_before_regstack (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_convert_to_eh_region_ranges (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_shorten_branches (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_set_nothrow_function_flags (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_dwarf2_frame (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_final (gcc::context *ctxt); +extern rtl_opt_pass *make_pass_rtl_seqabstr (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_release_ssa_names (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_early_inline (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_inline_parameters (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_update_address_taken (gcc::context *ctxt); +extern gimple_opt_pass *make_pass_convert_switch (gcc::context *ctxt); /* Current optimization pass. */ extern struct opt_pass *current_pass; |