diff options
author | Jan Hubicka <jh@suse.cz> | 2008-03-19 12:22:40 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2008-03-19 11:22:40 +0000 |
commit | 8ddbbcaea4d6a9d33ea49ed09b9a8bd6a35af819 (patch) | |
tree | a92c2b5908ddb433dcfd4848584500d8ec662e1d /gcc/tree-pass.h | |
parent | 8cb3ee3785019dc4b2566360816f0b83aeea4e2e (diff) | |
download | gcc-8ddbbcaea4d6a9d33ea49ed09b9a8bd6a35af819.zip gcc-8ddbbcaea4d6a9d33ea49ed09b9a8bd6a35af819.tar.gz gcc-8ddbbcaea4d6a9d33ea49ed09b9a8bd6a35af819.tar.bz2 |
re PR other/35094 (RTL dump file letters hosed and partly undocumented)
* gcc.dg/20050811-2.c: Update dumping flags.
* gcc.dg/sms-2.c: Update dumping flags.
* gcc.dg/var-expand1.c: Update dumping flags.
* gcc.dg/var-expand3.c: Update dumping flags.
* gcc.dg/pr30957-1.c: Update dumping flags.
* gcc.dg/20050811-1.c: Update dumping flags.
* gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail.
* gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail.
PR other/35094
* toplev.c (decode_d_option): Handle all CPP flags.
* tree-vrp.c: Update tree_pass descriptors.
* regrename.c: Update tree_pass descriptors.
* fwprop.c: Update tree_pass descriptors.
* doc/invoke.texi: Remove documentation of dropped -d? flags.
* tree-into-ssa.c: Update tree_pass descriptors.
* tree-dump.c: Update tree_pass descriptors.
* tree-complex.c: Update tree_pass descriptors.
* tree-dump.h: Update tree_pass descriptors.
* see.c: Update tree_pass descriptors.
* cgraphbuild.c: Update tree_pass descriptors.
* tracer.c: Update tree_pass descriptors.
* tree-loop-distribution.c: Update tree_pass descriptors.
* cgraph.c: Update tree_pass descriptors.
* postreload-gcse.c: Update tree_pass descriptors.
* postreload.c: Update tree_pass descriptors.
* tree-ssa-loop-ch.c: Update tree_pass descriptors.
* tree-tailcall.c: Update tree_pass descriptors.
* tree-pass.h (tree_opt_pass): Rename to ...
(opt_pass) ... this one; add "type" field and remove letter field.
(gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
(execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
all_lowering_passes): Update declaration.
* ipa-cp.c: Update tree_pass descriptors.
* final.c: Update tree_pass descriptors.
* omp-low.c: Update tree_pass descriptors.
* tree-ssa-dse.c: Update tree_pass descriptors.
* ipa-reference.c: Update tree_pass descriptors.
* tree-ssa-uncprop.c: Update tree_pass descriptors.
* auto-inc-dec.c: Update tree_pass descriptors.
* reorg.c: Update tree_pass descriptors.
* cgraphunit.c: Update tree_pass descriptors.
* tree-ssa-copyrename.c: Update tree_pass descriptors.
* tree-ssa-ccp.c: Update tree_pass descriptors.
* df-core.c: Update tree_pass descriptors.
* mode-switching.c: Update tree_pass descriptors.
* tree-nomudflap.c: Update tree_pass descriptors.
* modulo-sched.c: Update tree_pass descriptors.
* ipa-pure-const.c: Update tree_pass descriptors.
* cse.c: Update tree_pass descriptors.
* web.c: Update tree_pass descriptors.
* tree-stdarg.c: Update tree_pass descriptors.
* tree-ssa-math-opts.c: Update tree_pass descriptors.
* tree-ssa-dom.c: Update tree_pass descriptors.
* tree-nrv.c: Update tree_pass descriptors.
* tree-ssa-alias.c: Update tree_pass descriptors.
* loop-init.c: Update tree_pass descriptors.
* gimple-low.c: Update tree_pass descriptors.
* ipa-inline.c: Update tree_pass descriptors.
* tree-ssa-sink.c: Update tree_pass descriptors.
* global.c: Update tree_pass descriptors.
* ifcvt.c: Update tree_pass descriptors.
* jump.c: Update tree_pass descriptors.
* predict.c: Update tree_pass descriptors.
* tree-ssa-loop.c: Update tree_pass descriptors.
* recog.c: Update tree_pass descriptors.
* dse.c: Update tree_pass descriptors.
* tree-ssa-ifcombine.c: Update tree_pass descriptors.
* tree-eh.c: Update tree_pass descriptors.
* regmove.c: Update tree_pass descriptors.
* local-alloc.c
* function.c: Update tree_pass descriptors.
* tree-vectorizer.c: Update tree_pass descriptors.
* gcse.c: Update tree_pass descriptors.
* ipa-type-escape.c: Update tree_pass descriptors.
* tree-if-conv.c: Update tree_pass descriptors.
* init-regs.c: Update tree_pass descriptors.
* ipa.c: Update tree_pass descriptors.
* tree-ssa-phiopt.c: Update tree_pass descriptors.
* rtl-factoring.c: Update tree_pass descriptors.
* lower-subreg.c: Update tree_pass descriptors.
* bt-load.c: Update tree_pass descriptors.
* tree-dfa.c: Update tree_pass descriptors.
* except.c: Update tree_pass descriptors.
* emit-rtl.c: Update tree_pass descriptors.
* cfgexpand.c: Update tree_pass descriptors.
* tree-cfgcleanup.c: Update tree_pass descriptors.
* cfgcleanup.c: Update tree_pass descriptors.
* tree-ssa-pre.c: Update tree_pass descriptors.
* tree-sra.c: Update tree_pass descriptors.
* tree-mudflap.c: Update tree_pass descriptors.
* tree-ssa-copy.c: Update tree_pass descriptors.
* cfglayout.c: Update tree_pass descriptors.
* tree-ssa-forwprop.c: Update tree_pass descriptors.
* tree-ssa-dce.c: Update tree_pass descriptors.
* tree-ssa.c: Update tree_pass descriptors.
* regclass.c: Update tree_pass descriptors.
* integrate.c: Update tree_pass descriptors.
* tree-optimize.c: Update tree_pass descriptors.
* tree-ssa-phiprop.c: Update tree_pass descriptors.
* tree-object-size.c: Update tree_pass descriptors.
* combine.c: Update tree_pass descriptors.
* tree-outof-ssa.c: Update tree_pass descriptors.
* bb-reorder.c: Update tree_pass descriptors.
* stack-ptr-mod.c: Update tree_pass descriptors.
* var-tracking.c: Update tree_pass descriptors.
* tree-profile.c: Update tree_pass descriptors.
* tree-vect-generic.c: Update tree_pass descriptors.
* reg-stack.c: Update tree_pass descriptors.
* sched-rgn.c: Update tree_pass descriptors.
* tree-ssa-structalias.c: Update tree_pass descriptors.
* tree-cfg.c: Update tree_pass descriptors.
* passes.c (current_pass): Update declaration.
(finish_optimization_passes): Update.
(all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
(register_one_dump_file, register_dump_files_1, next_pass_1):
Update arguments.
(init_optimization_passes): Update handling of new types.
(execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
* ipa-struct-reorg.c: Update tree_pass descriptors.
* tree-ssa-reassoc.c: Update tree_pass descriptors.
* combine-stack-adj.c: Update tree_pass descriptors.
* cfgrtl.c: Update tree_pass descriptors.
* dce.c: Update tree_pass descriptors.
* tree-ssanames.c: Update tree_pass descriptors.
From-SVN: r133342
Diffstat (limited to 'gcc/tree-pass.h')
-rw-r--r-- | gcc/tree-pass.h | 457 |
1 files changed, 240 insertions, 217 deletions
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 55aa5fc..9c698ca 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -88,9 +88,16 @@ extern const char *dump_file_name; /* Return the dump_file_info for the given phase. */ extern struct dump_file_info *get_dump_file_info (enum tree_dump_index); -/* Describe one pass. */ -struct tree_opt_pass +/* Describe one pass; this is the common part shared across different pass + types. */ +struct opt_pass { + /* Optimization pass type. */ + enum opt_pass_type { + GIMPLE_PASS, + RTL_PASS, + SIMPLE_IPA_PASS + } type; /* Terse name of the pass used as a fragment of the dump file name. */ const char *name; @@ -104,10 +111,10 @@ struct tree_opt_pass unsigned int (*execute) (void); /* A list of sub-passes to run, dependent on gate predicate. */ - struct tree_opt_pass *sub; + struct opt_pass *sub; /* Next in the list of passes to run, independent of gate predicate. */ - struct tree_opt_pass *next; + struct opt_pass *next; /* Static pass number, used as a fragment of the dump file name. */ int static_pass_number; @@ -124,9 +131,25 @@ struct tree_opt_pass /* Flags indicating common sets things to do before and after. */ unsigned int todo_flags_start; unsigned int todo_flags_finish; +}; + +/* Description or GIMPLE pass. */ +struct gimple_opt_pass +{ + struct opt_pass pass; +}; - /* Letter for RTL dumps. */ - char letter; +/* Decription of RTL pass. */ +struct rtl_opt_pass +{ + struct opt_pass pass; +}; + +/* Description if simple IPA pass. Simple IPA passes have just one execute + hook. */ +struct simple_ipa_opt_pass +{ + struct opt_pass pass; }; /* Define a tree dump switch. */ @@ -240,222 +263,222 @@ struct dump_file_info extern void tree_lowering_passes (tree decl); -extern struct tree_opt_pass pass_mudflap_1; -extern struct tree_opt_pass pass_mudflap_2; -extern struct tree_opt_pass pass_remove_useless_stmts; -extern struct tree_opt_pass pass_lower_cf; -extern struct tree_opt_pass pass_refactor_eh; -extern struct tree_opt_pass pass_lower_eh; -extern struct tree_opt_pass pass_build_cfg; -extern struct tree_opt_pass pass_tree_profile; -extern struct tree_opt_pass pass_early_tree_profile; -extern struct tree_opt_pass pass_cleanup_cfg; -extern struct tree_opt_pass pass_referenced_vars; -extern struct tree_opt_pass pass_sra; -extern struct tree_opt_pass pass_sra_early; -extern struct tree_opt_pass pass_tail_recursion; -extern struct tree_opt_pass pass_tail_calls; -extern struct tree_opt_pass pass_tree_loop; -extern struct tree_opt_pass pass_tree_loop_init; -extern struct tree_opt_pass pass_lim; -extern struct tree_opt_pass pass_tree_unswitch; -extern struct tree_opt_pass pass_predcom; -extern struct tree_opt_pass pass_iv_canon; -extern struct tree_opt_pass pass_scev_cprop; -extern struct tree_opt_pass pass_empty_loop; -extern struct tree_opt_pass pass_record_bounds; -extern struct tree_opt_pass pass_if_conversion; -extern struct tree_opt_pass pass_loop_distribution; -extern struct tree_opt_pass pass_vectorize; -extern struct tree_opt_pass pass_complete_unroll; -extern struct tree_opt_pass pass_parallelize_loops; -extern struct tree_opt_pass pass_loop_prefetch; -extern struct tree_opt_pass pass_iv_optimize; -extern struct tree_opt_pass pass_tree_loop_done; -extern struct tree_opt_pass pass_ch; -extern struct tree_opt_pass pass_ccp; -extern struct tree_opt_pass pass_phi_only_cprop; -extern struct tree_opt_pass pass_build_ssa; -extern struct tree_opt_pass pass_del_ssa; -extern struct tree_opt_pass pass_build_alias; -extern struct tree_opt_pass pass_dominator; -extern struct tree_opt_pass pass_dce; -extern struct tree_opt_pass pass_dce_loop; -extern struct tree_opt_pass pass_cd_dce; -extern struct tree_opt_pass pass_merge_phi; -extern struct tree_opt_pass pass_split_crit_edges; -extern struct tree_opt_pass pass_pre; -extern struct tree_opt_pass pass_profile; -extern struct tree_opt_pass pass_lower_complex_O0; -extern struct tree_opt_pass pass_lower_complex; -extern struct tree_opt_pass pass_lower_vector; -extern struct tree_opt_pass pass_lower_vector_ssa; -extern struct tree_opt_pass pass_lower_omp; -extern struct tree_opt_pass pass_expand_omp; -extern struct tree_opt_pass pass_expand_omp_ssa; -extern struct tree_opt_pass pass_object_sizes; -extern struct tree_opt_pass pass_fold_builtins; -extern struct tree_opt_pass pass_stdarg; -extern struct tree_opt_pass pass_early_warn_uninitialized; -extern struct tree_opt_pass pass_late_warn_uninitialized; -extern struct tree_opt_pass pass_cse_reciprocals; -extern struct tree_opt_pass pass_cse_sincos; -extern struct tree_opt_pass pass_convert_to_rsqrt; -extern struct tree_opt_pass pass_warn_function_return; -extern struct tree_opt_pass pass_warn_function_noreturn; -extern struct tree_opt_pass pass_cselim; -extern struct tree_opt_pass pass_phiopt; -extern struct tree_opt_pass pass_forwprop; -extern struct tree_opt_pass pass_phiprop; -extern struct tree_opt_pass pass_tree_ifcombine; -extern struct tree_opt_pass pass_dse; -extern struct tree_opt_pass pass_simple_dse; -extern struct tree_opt_pass pass_nrv; -extern struct tree_opt_pass pass_mark_used_blocks; -extern struct tree_opt_pass pass_rename_ssa_copies; -extern struct tree_opt_pass pass_expand; -extern struct tree_opt_pass pass_rest_of_compilation; -extern struct tree_opt_pass pass_sink_code; -extern struct tree_opt_pass pass_fre; -extern struct tree_opt_pass pass_linear_transform; -extern struct tree_opt_pass pass_check_data_deps; -extern struct tree_opt_pass pass_copy_prop; -extern struct tree_opt_pass pass_store_ccp; -extern struct tree_opt_pass pass_vrp; -extern struct tree_opt_pass pass_create_structure_vars; -extern struct tree_opt_pass pass_uncprop; -extern struct tree_opt_pass pass_return_slot; -extern struct tree_opt_pass pass_reassoc; -extern struct tree_opt_pass pass_rebuild_cgraph_edges; -extern struct tree_opt_pass pass_build_cgraph_edges; -extern struct tree_opt_pass pass_reset_cc_flags; +extern struct gimple_opt_pass pass_mudflap_1; +extern struct gimple_opt_pass pass_mudflap_2; +extern struct gimple_opt_pass pass_remove_useless_stmts; +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_build_cfg; +extern struct gimple_opt_pass pass_tree_profile; +extern struct gimple_opt_pass pass_early_tree_profile; +extern struct gimple_opt_pass pass_cleanup_cfg; +extern struct gimple_opt_pass pass_referenced_vars; +extern struct gimple_opt_pass pass_sra; +extern struct gimple_opt_pass pass_sra_early; +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_if_conversion; +extern struct gimple_opt_pass pass_loop_distribution; +extern struct gimple_opt_pass pass_vectorize; +extern struct gimple_opt_pass pass_complete_unroll; +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_del_ssa; +extern struct gimple_opt_pass pass_build_alias; +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_merge_phi; +extern struct gimple_opt_pass pass_split_crit_edges; +extern struct gimple_opt_pass pass_pre; +extern struct gimple_opt_pass pass_profile; +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_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_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_convert_to_rsqrt; +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_simple_dse; +extern struct gimple_opt_pass pass_nrv; +extern struct gimple_opt_pass pass_mark_used_blocks; +extern struct gimple_opt_pass pass_rename_ssa_copies; +extern struct gimple_opt_pass pass_expand; +extern struct gimple_opt_pass pass_rest_of_compilation; +extern struct gimple_opt_pass pass_sink_code; +extern struct gimple_opt_pass pass_fre; +extern struct gimple_opt_pass pass_linear_transform; +extern struct gimple_opt_pass pass_check_data_deps; +extern struct gimple_opt_pass pass_copy_prop; +extern struct gimple_opt_pass pass_store_ccp; +extern struct gimple_opt_pass pass_vrp; +extern struct gimple_opt_pass pass_create_structure_vars; +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_build_cgraph_edges; +extern struct gimple_opt_pass pass_reset_cc_flags; /* IPA Passes */ -extern struct tree_opt_pass pass_ipa_matrix_reorg; -extern struct tree_opt_pass pass_ipa_cp; -extern struct tree_opt_pass pass_ipa_inline; -extern struct tree_opt_pass pass_ipa_early_inline; -extern struct tree_opt_pass pass_ipa_reference; -extern struct tree_opt_pass pass_ipa_pure_const; -extern struct tree_opt_pass pass_ipa_type_escape; -extern struct tree_opt_pass pass_ipa_pta; -extern struct tree_opt_pass pass_ipa_struct_reorg; -extern struct tree_opt_pass pass_early_local_passes; -extern struct tree_opt_pass pass_ipa_increase_alignment; -extern struct tree_opt_pass pass_ipa_function_and_variable_visibility; - -extern struct tree_opt_pass pass_all_optimizations; -extern struct tree_opt_pass pass_cleanup_cfg_post_optimizing; -extern struct tree_opt_pass pass_free_cfg_annotations; -extern struct tree_opt_pass pass_free_datastructures; -extern struct tree_opt_pass pass_init_datastructures; -extern struct tree_opt_pass pass_fixup_cfg; - -extern struct tree_opt_pass pass_init_function; -extern struct tree_opt_pass pass_jump; -extern struct tree_opt_pass pass_rtl_eh; -extern struct tree_opt_pass pass_initial_value_sets; -extern struct tree_opt_pass pass_unshare_all_rtl; -extern struct tree_opt_pass pass_instantiate_virtual_regs; -extern struct tree_opt_pass pass_rtl_fwprop; -extern struct tree_opt_pass pass_rtl_fwprop_addr; -extern struct tree_opt_pass pass_jump2; -extern struct tree_opt_pass pass_lower_subreg; -extern struct tree_opt_pass pass_cse; -extern struct tree_opt_pass pass_fast_rtl_dce; -extern struct tree_opt_pass pass_ud_rtl_dce; -extern struct tree_opt_pass pass_rtl_dce; -extern struct tree_opt_pass pass_rtl_dse1; -extern struct tree_opt_pass pass_rtl_dse2; -extern struct tree_opt_pass pass_rtl_dse3; -extern struct tree_opt_pass pass_gcse; -extern struct tree_opt_pass pass_jump_bypass; -extern struct tree_opt_pass pass_profiling; -extern struct tree_opt_pass pass_rtl_ifcvt; -extern struct tree_opt_pass pass_tracer; - -extern struct tree_opt_pass pass_into_cfg_layout_mode; -extern struct tree_opt_pass pass_outof_cfg_layout_mode; - -extern struct tree_opt_pass pass_loop2; -extern struct tree_opt_pass pass_rtl_loop_init; -extern struct tree_opt_pass pass_rtl_move_loop_invariants; -extern struct tree_opt_pass pass_rtl_unswitch; -extern struct tree_opt_pass pass_rtl_unroll_and_peel_loops; -extern struct tree_opt_pass pass_rtl_doloop; -extern struct tree_opt_pass pass_rtl_loop_done; - -extern struct tree_opt_pass pass_web; -extern struct tree_opt_pass pass_cse2; -extern struct tree_opt_pass pass_df_initialize_opt; -extern struct tree_opt_pass pass_df_initialize_no_opt; -extern struct tree_opt_pass pass_regclass_init; -extern struct tree_opt_pass pass_subregs_of_mode_init; -extern struct tree_opt_pass pass_subregs_of_mode_finish; -extern struct tree_opt_pass pass_inc_dec; -extern struct tree_opt_pass pass_stack_ptr_mod; -extern struct tree_opt_pass pass_initialize_regs; -extern struct tree_opt_pass pass_combine; -extern struct tree_opt_pass pass_if_after_combine; -extern struct tree_opt_pass pass_partition_blocks; -extern struct tree_opt_pass pass_match_asm_constraints; -extern struct tree_opt_pass pass_regmove; -extern struct tree_opt_pass pass_split_all_insns; -extern struct tree_opt_pass pass_lower_subreg2; -extern struct tree_opt_pass pass_mode_switching; -extern struct tree_opt_pass pass_see; -extern struct tree_opt_pass pass_sms; -extern struct tree_opt_pass pass_sched; -extern struct tree_opt_pass pass_local_alloc; -extern struct tree_opt_pass pass_global_alloc; -extern struct tree_opt_pass pass_postreload; -extern struct tree_opt_pass pass_clean_state; -extern struct tree_opt_pass pass_branch_prob; -extern struct tree_opt_pass pass_value_profile_transformations; -extern struct tree_opt_pass pass_postreload_cse; -extern struct tree_opt_pass pass_gcse2; -extern struct tree_opt_pass pass_split_after_reload; -extern struct tree_opt_pass pass_branch_target_load_optimize1; -extern struct tree_opt_pass pass_thread_prologue_and_epilogue; -extern struct tree_opt_pass pass_stack_adjustments; -extern struct tree_opt_pass pass_peephole2; -extern struct tree_opt_pass pass_if_after_reload; -extern struct tree_opt_pass pass_regrename; -extern struct tree_opt_pass pass_cprop_hardreg; -extern struct tree_opt_pass pass_reorder_blocks; -extern struct tree_opt_pass pass_branch_target_load_optimize2; -extern struct tree_opt_pass pass_leaf_regs; -extern struct tree_opt_pass pass_split_before_sched2; -extern struct tree_opt_pass pass_sched2; -extern struct tree_opt_pass pass_stack_regs; -extern struct tree_opt_pass pass_stack_regs_run; -extern struct tree_opt_pass pass_df_finish; -extern struct tree_opt_pass pass_compute_alignments; -extern struct tree_opt_pass pass_duplicate_computed_gotos; -extern struct tree_opt_pass pass_variable_tracking; -extern struct tree_opt_pass pass_free_cfg; -extern struct tree_opt_pass pass_machine_reorg; -extern struct tree_opt_pass pass_cleanup_barriers; -extern struct tree_opt_pass pass_delay_slots; -extern struct tree_opt_pass pass_split_for_shorten_branches; -extern struct tree_opt_pass pass_split_before_regstack; -extern struct tree_opt_pass pass_convert_to_eh_region_ranges; -extern struct tree_opt_pass pass_shorten_branches; -extern struct tree_opt_pass pass_set_nothrow_function_flags; -extern struct tree_opt_pass pass_final; -extern struct tree_opt_pass pass_rtl_seqabstr; -extern struct tree_opt_pass pass_release_ssa_names; -extern struct tree_opt_pass pass_early_inline; -extern struct tree_opt_pass pass_inline_parameters; -extern struct tree_opt_pass pass_apply_inline; -extern struct tree_opt_pass pass_all_early_optimizations; -extern struct tree_opt_pass pass_update_address_taken; +extern struct simple_ipa_opt_pass pass_ipa_matrix_reorg; +extern struct simple_ipa_opt_pass pass_ipa_cp; +extern struct simple_ipa_opt_pass pass_ipa_inline; +extern struct simple_ipa_opt_pass pass_ipa_early_inline; +extern struct simple_ipa_opt_pass pass_ipa_reference; +extern struct simple_ipa_opt_pass pass_ipa_pure_const; +extern struct simple_ipa_opt_pass pass_ipa_type_escape; +extern struct simple_ipa_opt_pass pass_ipa_pta; +extern struct simple_ipa_opt_pass pass_ipa_struct_reorg; +extern struct simple_ipa_opt_pass pass_early_local_passes; +extern struct simple_ipa_opt_pass pass_ipa_increase_alignment; +extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility; + +extern struct gimple_opt_pass pass_all_optimizations; +extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing; +extern struct gimple_opt_pass pass_free_cfg_annotations; +extern struct gimple_opt_pass pass_free_datastructures; +extern struct gimple_opt_pass pass_init_datastructures; +extern struct gimple_opt_pass pass_fixup_cfg; + +extern struct rtl_opt_pass pass_init_function; +extern struct rtl_opt_pass pass_jump; +extern struct rtl_opt_pass pass_rtl_eh; +extern struct rtl_opt_pass pass_initial_value_sets; +extern struct rtl_opt_pass pass_unshare_all_rtl; +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_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_gcse; +extern struct rtl_opt_pass pass_jump_bypass; +extern struct rtl_opt_pass pass_profiling; +extern struct rtl_opt_pass pass_rtl_ifcvt; +extern struct gimple_opt_pass pass_tracer; + +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_regclass_init; +extern struct rtl_opt_pass pass_subregs_of_mode_init; +extern struct rtl_opt_pass pass_subregs_of_mode_finish; +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_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_lower_subreg2; +extern struct rtl_opt_pass pass_mode_switching; +extern struct rtl_opt_pass pass_see; +extern struct rtl_opt_pass pass_sms; +extern struct rtl_opt_pass pass_sched; +extern struct rtl_opt_pass pass_local_alloc; +extern struct rtl_opt_pass pass_global_alloc; +extern struct rtl_opt_pass pass_postreload; +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_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_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_apply_inline; +extern struct gimple_opt_pass pass_all_early_optimizations; +extern struct gimple_opt_pass pass_update_address_taken; /* The root of the compilation pass tree, once constructed. */ -extern struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; +extern struct opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; -extern void execute_pass_list (struct tree_opt_pass *); -extern void execute_ipa_pass_list (struct tree_opt_pass *); +extern void execute_pass_list (struct opt_pass *); +extern void execute_ipa_pass_list (struct opt_pass *); extern void print_current_pass (FILE *); extern void debug_pass (void); |