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 | |
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
116 files changed, 1410 insertions, 935 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0dc711d..845455c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,122 @@ +2008-03-19 Jan Hubicka <jh@suse.cz> + + 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. + 2008-03-19 Richard Guenther <rguenther@suse.de> PR middle-end/35609 @@ -91,29 +210,6 @@ 2008-03-17 Richard Guenther <rguenther@suse.de> - * tree-pretty-print.c: Include predict.h. - (dump_generic_node): Dump predictor. - * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update. - * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR. - * gimple-low.c (lower_stmt): Likewise. - * expr.c (expand_expr_real): Likewise. - * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove - them. - (build_predict_expr, build_predict_expr): New. - * predict.h (predictor_name, build_predict_expr): Update. - * c-typeck.c (c_finish_bc_stmt): Add prediction. - * gimplify.c (gimplify_expr): Add PREDICT_EXPR. - * predict.def (PRED_CONTINUE): Update hitrate. - * tree.def (PREDICT_EXPR): Define. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR; - do not handle BIND_EXPR. - * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free. - * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid. - * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no - operands. - -2008-03-17 Richard Guenther <rguenther@suse.de> - PR tree-optimization/19637 * fold-const.c (fold_unary): Remove restrictions of removing intermediate pointer-conversions (P2)(P1)P0. diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c index 2e2d047..8dbcecf 100644 --- a/gcc/auto-inc-dec.c +++ b/gcc/auto-inc-dec.c @@ -1540,8 +1540,10 @@ gate_auto_inc_dec (void) } -struct tree_opt_pass pass_inc_dec = +struct rtl_opt_pass pass_inc_dec = { + { + RTL_PASS, "auto-inc-dec", /* name */ gate_auto_inc_dec, /* gate */ rest_of_handle_auto_inc_dec, /* execute */ @@ -1555,6 +1557,6 @@ struct tree_opt_pass pass_inc_dec = 0, /* todo_flags_start */ TODO_dump_func | TODO_df_finish, /* todo_flags_finish */ - 0 /* letter */ + } }; diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c index 18e9405..3b59fcd 100644 --- a/gcc/bb-reorder.c +++ b/gcc/bb-reorder.c @@ -2096,8 +2096,10 @@ done: return 0; } -struct tree_opt_pass pass_duplicate_computed_gotos = +struct rtl_opt_pass pass_duplicate_computed_gotos = { + { + RTL_PASS, "compgotos", /* name */ gate_duplicate_computed_gotos, /* gate */ duplicate_computed_gotos, /* execute */ @@ -2110,7 +2112,7 @@ struct tree_opt_pass pass_duplicate_computed_gotos = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ - 0 /* letter */ + } }; @@ -2239,8 +2241,10 @@ rest_of_handle_reorder_blocks (void) return 0; } -struct tree_opt_pass pass_reorder_blocks = +struct rtl_opt_pass pass_reorder_blocks = { + { + RTL_PASS, "bbro", /* name */ gate_handle_reorder_blocks, /* gate */ rest_of_handle_reorder_blocks, /* execute */ @@ -2253,7 +2257,7 @@ struct tree_opt_pass pass_reorder_blocks = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ - 'B' /* letter */ + } }; static bool @@ -2277,8 +2281,10 @@ rest_of_handle_partition_blocks (void) return 0; } -struct tree_opt_pass pass_partition_blocks = +struct rtl_opt_pass pass_partition_blocks = { + { + RTL_PASS, "bbpart", /* name */ gate_handle_partition_blocks, /* gate */ rest_of_handle_partition_blocks, /* execute */ @@ -2290,8 +2296,8 @@ struct tree_opt_pass pass_partition_blocks = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing/* todo_flags_finish */ + } }; diff --git a/gcc/bt-load.c b/gcc/bt-load.c index c30f2c3..188faeb 100644 --- a/gcc/bt-load.c +++ b/gcc/bt-load.c @@ -1505,8 +1505,10 @@ rest_of_handle_branch_target_load_optimize1 (void) return 0; } -struct tree_opt_pass pass_branch_target_load_optimize1 = +struct rtl_opt_pass pass_branch_target_load_optimize1 = { + { + RTL_PASS, "btl1", /* name */ gate_handle_branch_target_load_optimize1, /* gate */ rest_of_handle_branch_target_load_optimize1, /* execute */ @@ -1521,7 +1523,7 @@ struct tree_opt_pass pass_branch_target_load_optimize1 = TODO_dump_func | TODO_verify_rtl_sharing | TODO_ggc_collect, /* todo_flags_finish */ - 'd' /* letter */ + } }; static bool @@ -1553,8 +1555,10 @@ rest_of_handle_branch_target_load_optimize2 (void) return 0; } -struct tree_opt_pass pass_branch_target_load_optimize2 = +struct rtl_opt_pass pass_branch_target_load_optimize2 = { + { + RTL_PASS, "btl2", /* name */ gate_handle_branch_target_load_optimize2, /* gate */ rest_of_handle_branch_target_load_optimize2, /* execute */ @@ -1568,6 +1572,6 @@ struct tree_opt_pass pass_branch_target_load_optimize2 = 0, /* todo_flags_start */ TODO_dump_func | TODO_ggc_collect, /* todo_flags_finish */ - 'd' /* letter */ + } }; diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index a95204c..203963e 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -2181,8 +2181,10 @@ rest_of_handle_jump (void) return 0; } -struct tree_opt_pass pass_jump = +struct rtl_opt_pass pass_jump = { + { + RTL_PASS, "sibling", /* name */ NULL, /* gate */ rest_of_handle_jump, /* execute */ @@ -2195,7 +2197,7 @@ struct tree_opt_pass pass_jump = 0, /* properties_destroyed */ TODO_ggc_collect, /* todo_flags_start */ TODO_verify_flow, /* todo_flags_finish */ - 'i' /* letter */ + } }; @@ -2211,8 +2213,10 @@ rest_of_handle_jump2 (void) } -struct tree_opt_pass pass_jump2 = +struct rtl_opt_pass pass_jump2 = { + { + RTL_PASS, "jump", /* name */ NULL, /* gate */ rest_of_handle_jump2, /* execute */ @@ -2225,7 +2229,7 @@ struct tree_opt_pass pass_jump2 = 0, /* properties_destroyed */ TODO_ggc_collect, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ - 'j' /* letter */ + } }; diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 943a070..cd04a62 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -1986,8 +1986,10 @@ tree_expand_cfg (void) return 0; } -struct tree_opt_pass pass_expand = +struct gimple_opt_pass pass_expand = { + { + GIMPLE_PASS, "expand", /* name */ NULL, /* gate */ tree_expand_cfg, /* execute */ @@ -2001,5 +2003,5 @@ struct tree_opt_pass pass_expand = PROP_trees, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func, /* todo_flags_finish */ - 'r' /* letter */ + } }; diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 5387b38..0885af7 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -340,8 +340,10 @@ outof_cfg_layout_mode (void) return 0; } -struct tree_opt_pass pass_into_cfg_layout_mode = +struct rtl_opt_pass pass_into_cfg_layout_mode = { + { + RTL_PASS, "into_cfglayout", /* name */ NULL, /* gate */ into_cfg_layout_mode, /* execute */ @@ -354,11 +356,13 @@ struct tree_opt_pass pass_into_cfg_layout_mode = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + } }; -struct tree_opt_pass pass_outof_cfg_layout_mode = +struct rtl_opt_pass pass_outof_cfg_layout_mode = { + { + RTL_PASS, "outof_cfglayout", /* name */ NULL, /* gate */ outof_cfg_layout_mode, /* execute */ @@ -371,7 +375,7 @@ struct tree_opt_pass pass_outof_cfg_layout_mode = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + } }; /* Return sope resulting from combination of S1 and S2. */ diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index c157e08..a42063b 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -427,8 +427,10 @@ free_bb_for_insn (void) return 0; } -struct tree_opt_pass pass_free_cfg = +struct rtl_opt_pass pass_free_cfg = { + { + RTL_PASS, NULL, /* name */ NULL, /* gate */ free_bb_for_insn, /* execute */ @@ -441,7 +443,7 @@ struct tree_opt_pass pass_free_cfg = PROP_cfg, /* properties_destroyed */ 0, /* todo_flags_start */ 0, /* todo_flags_finish */ - 0 /* letter */ + } }; /* Return RTX to emit after when we want to emit code on the entry of function. */ diff --git a/gcc/cgraph.c b/gcc/cgraph.c index 649915e..86940b8 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -1070,7 +1070,7 @@ cgraph_add_new_function (tree fndecl, bool lowered) tree_lowering_passes (fndecl); bitmap_obstack_initialize (NULL); if (!gimple_in_ssa_p (DECL_STRUCT_FUNCTION (fndecl)) && optimize) - execute_pass_list (pass_early_local_passes.sub); + execute_pass_list (pass_early_local_passes.pass.sub); bitmap_obstack_release (NULL); tree_rest_of_compilation (fndecl); pop_cfun (); diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c index 2f8d3b0..832fa6e 100644 --- a/gcc/cgraphbuild.c +++ b/gcc/cgraphbuild.c @@ -170,8 +170,10 @@ build_cgraph_edges (void) return 0; } -struct tree_opt_pass pass_build_cgraph_edges = +struct gimple_opt_pass pass_build_cgraph_edges = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ build_cgraph_edges, /* execute */ @@ -183,8 +185,8 @@ struct tree_opt_pass pass_build_cgraph_edges = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Record references to functions and other variables present in the @@ -238,8 +240,10 @@ rebuild_cgraph_edges (void) return 0; } -struct tree_opt_pass pass_rebuild_cgraph_edges = +struct gimple_opt_pass pass_rebuild_cgraph_edges = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ rebuild_cgraph_edges, /* execute */ @@ -252,5 +256,5 @@ struct tree_opt_pass pass_rebuild_cgraph_edges = 0, /* properties_destroyed */ 0, /* todo_flags_start */ 0, /* todo_flags_finish */ - 0 /* letter */ + } }; diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index 0d6a9fe..7b01248 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -475,7 +475,7 @@ cgraph_process_new_functions (void) /* When not optimizing, be sure we run early local passes anyway to expand OMP. */ || !optimize) - execute_pass_list (pass_early_local_passes.sub); + execute_pass_list (pass_early_local_passes.pass.sub); free_dominance_info (CDI_POST_DOMINATORS); free_dominance_info (CDI_DOMINATORS); pop_cfun (); @@ -858,7 +858,7 @@ cgraph_analyze_function (struct cgraph_node *node) { bitmap_obstack_initialize (NULL); tree_register_cfg_hooks (); - execute_pass_list (pass_early_local_passes.sub); + execute_pass_list (pass_early_local_passes.pass.sub); free_dominance_info (CDI_POST_DOMINATORS); free_dominance_info (CDI_DOMINATORS); bitmap_obstack_release (NULL); diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c index 37942bc..bf7cccf 100644 --- a/gcc/combine-stack-adj.c +++ b/gcc/combine-stack-adj.c @@ -472,8 +472,10 @@ rest_of_handle_stack_adjustments (void) return 0; } -struct tree_opt_pass pass_stack_adjustments = +struct rtl_opt_pass pass_stack_adjustments = { + { + RTL_PASS, "csa", /* name */ gate_handle_stack_adjustments, /* gate */ rest_of_handle_stack_adjustments, /* execute */ @@ -488,6 +490,6 @@ struct tree_opt_pass pass_stack_adjustments = TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + } }; diff --git a/gcc/combine.c b/gcc/combine.c index b812b33..0fca12d 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -13035,8 +13035,10 @@ rest_of_handle_combine (void) return 0; } -struct tree_opt_pass pass_combine = +struct rtl_opt_pass pass_combine = { + { + RTL_PASS, "combine", /* name */ gate_handle_combine, /* gate */ rest_of_handle_combine, /* execute */ @@ -13051,6 +13053,6 @@ struct tree_opt_pass pass_combine = TODO_dump_func | TODO_df_finish | TODO_verify_rtl_sharing | TODO_ggc_collect, /* todo_flags_finish */ - 'c' /* letter */ + } }; @@ -7011,8 +7011,10 @@ rest_of_handle_cse (void) return 0; } -struct tree_opt_pass pass_cse = +struct rtl_opt_pass pass_cse = { + { + RTL_PASS, "cse1", /* name */ gate_handle_cse, /* gate */ rest_of_handle_cse, /* execute */ @@ -7028,7 +7030,7 @@ struct tree_opt_pass pass_cse = TODO_dump_func | TODO_ggc_collect | TODO_verify_flow, /* todo_flags_finish */ - 's' /* letter */ + } }; @@ -7072,8 +7074,10 @@ rest_of_handle_cse2 (void) } -struct tree_opt_pass pass_cse2 = +struct rtl_opt_pass pass_cse2 = { + { + RTL_PASS, "cse2", /* name */ gate_handle_cse2, /* gate */ rest_of_handle_cse2, /* execute */ @@ -7088,7 +7092,7 @@ struct tree_opt_pass pass_cse2 = TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | TODO_ggc_collect | - TODO_verify_flow, /* todo_flags_finish */ - 't' /* letter */ + TODO_verify_flow /* todo_flags_finish */ + } }; @@ -567,8 +567,10 @@ gate_ud_dce (void) && dbg_cnt (dce_ud); } -struct tree_opt_pass pass_ud_rtl_dce = +struct rtl_opt_pass pass_ud_rtl_dce = { + { + RTL_PASS, "dce", /* name */ gate_ud_dce, /* gate */ rest_of_handle_ud_dce, /* execute */ @@ -582,8 +584,8 @@ struct tree_opt_pass pass_ud_rtl_dce = 0, /* todo_flags_start */ TODO_dump_func | TODO_df_finish | TODO_verify_rtl_sharing | - TODO_ggc_collect, /* todo_flags_finish */ - 'w' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; @@ -853,8 +855,10 @@ gate_fast_dce (void) && dbg_cnt (dce_fast); } -struct tree_opt_pass pass_fast_rtl_dce = +struct rtl_opt_pass pass_fast_rtl_dce = { + { + RTL_PASS, "dce", /* name */ gate_fast_dce, /* gate */ rest_of_handle_fast_dce, /* execute */ @@ -868,6 +872,6 @@ struct tree_opt_pass pass_fast_rtl_dce = 0, /* todo_flags_start */ TODO_dump_func | TODO_df_finish | TODO_verify_rtl_sharing | - TODO_ggc_collect, /* todo_flags_finish */ - 'w' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/df-core.c b/gcc/df-core.c index 5404000..1cd49b1 100644 --- a/gcc/df-core.c +++ b/gcc/df-core.c @@ -753,8 +753,10 @@ gate_opt (void) } -struct tree_opt_pass pass_df_initialize_opt = +struct rtl_opt_pass pass_df_initialize_opt = { + { + RTL_PASS, "dfinit", /* name */ gate_opt, /* gate */ rest_of_handle_df_initialize, /* execute */ @@ -766,8 +768,8 @@ struct tree_opt_pass pass_df_initialize_opt = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 'z' /* letter */ + 0 /* todo_flags_finish */ + } }; @@ -778,8 +780,10 @@ gate_no_opt (void) } -struct tree_opt_pass pass_df_initialize_no_opt = +struct rtl_opt_pass pass_df_initialize_no_opt = { + { + RTL_PASS, "dfinit", /* name */ gate_no_opt, /* gate */ rest_of_handle_df_initialize, /* execute */ @@ -791,8 +795,8 @@ struct tree_opt_pass pass_df_initialize_no_opt = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 'z' /* letter */ + 0 /* todo_flags_finish */ + } }; @@ -825,8 +829,10 @@ rest_of_handle_df_finish (void) } -struct tree_opt_pass pass_df_finish = +struct rtl_opt_pass pass_df_finish = { + { + RTL_PASS, "dfinish", /* name */ NULL, /* gate */ rest_of_handle_df_finish, /* execute */ @@ -838,8 +844,8 @@ struct tree_opt_pass pass_df_finish = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 'z' /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 27bf020..8b3d49a 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -4446,39 +4446,31 @@ letters for use in @var{letters} and @var{pass}, and their meanings: @opindex dA Annotate the assembler output with miscellaneous debugging information. -@item -dB @itemx -fdump-rtl-bbro -@opindex dB @opindex fdump-rtl-bbro Dump after block reordering, to @file{@var{file}.148r.bbro}. -@item -dc @itemx -fdump-rtl-combine -@opindex dc @opindex fdump-rtl-combine Dump after the RTL instruction combination pass, to the file @file{@var{file}.129r.combine}. -@item -dC @itemx -fdump-rtl-ce1 @itemx -fdump-rtl-ce2 -@opindex dC @opindex fdump-rtl-ce1 @opindex fdump-rtl-ce2 -@option{-dC} and @option{-fdump-rtl-ce1} enable dumping after the -first if conversion, to the file @file{@var{file}.117r.ce1}. @option{-dC} -and @option{-fdump-rtl-ce2} enable dumping after the second if +@option{-fdump-rtl-ce1} enable dumping after the +first if conversion, to the file @file{@var{file}.117r.ce1}. +@option{-fdump-rtl-ce2} enable dumping after the second if conversion, to the file @file{@var{file}.130r.ce2}. -@item -dd @itemx -fdump-rtl-btl @itemx -fdump-rtl-dbr -@opindex dd @opindex fdump-rtl-btl @opindex fdump-rtl-dbr -@option{-dd} and @option{-fdump-rtl-btl} enable dumping after branch -target load optimization, to @file{@var{file}.31.btl}. @option{-dd} -and @option{-fdump-rtl-dbr} enable dumping after delayed branch +@option{-fdump-rtl-btl} enable dumping after branch +target load optimization, to @file{@var{file}.31.btl}. +@option{-fdump-rtl-dbr} enable dumping after delayed branch scheduling, to @file{@var{file}.36.dbr}. @item -dD @@ -4486,74 +4478,54 @@ scheduling, to @file{@var{file}.36.dbr}. Dump all macro definitions, at the end of preprocessing, in addition to normal output. -@item -dE @itemx -fdump-rtl-ce3 -@opindex dE @opindex fdump-rtl-ce3 Dump after the third if conversion, to @file{@var{file}.146r.ce3}. -@item -df @itemx -fdump-rtl-cfg @itemx -fdump-rtl-life -@opindex df @opindex fdump-rtl-cfg @opindex fdump-rtl-life -@option{-df} and @option{-fdump-rtl-cfg} enable dumping after control -and data flow analysis, to @file{@var{file}.116r.cfg}. @option{-df} -and @option{-fdump-rtl-cfg} enable dumping dump after life analysis, +@option{-fdump-rtl-cfg} enable dumping after control +and data flow analysis, to @file{@var{file}.116r.cfg}. +@option{-fdump-rtl-cfg} enable dumping dump after life analysis, to @file{@var{file}.128r.life1} and @file{@var{file}.135r.life2}. -@item -dg @itemx -fdump-rtl-greg -@opindex dg @opindex fdump-rtl-greg Dump after global register allocation, to @file{@var{file}.139r.greg}. -@item -dG @itemx -fdump-rtl-gcse @itemx -fdump-rtl-bypass -@opindex dG @opindex fdump-rtl-gcse @opindex fdump-rtl-bypass -@option{-dG} and @option{-fdump-rtl-gcse} enable dumping after GCSE, to -@file{@var{file}.114r.gcse}. @option{-dG} and @option{-fdump-rtl-bypass} +@option{-fdump-rtl-gcse} enable dumping after GCSE, to +@file{@var{file}.114r.gcse}. @option{-fdump-rtl-bypass} enable dumping after jump bypassing and control flow optimizations, to @file{@var{file}.115r.bypass}. -@item -dh @itemx -fdump-rtl-eh -@opindex dh @opindex fdump-rtl-eh Dump after finalization of EH handling code, to @file{@var{file}.02.eh}. -@item -di @itemx -fdump-rtl-sibling -@opindex di @opindex fdump-rtl-sibling Dump after sibling call optimizations, to @file{@var{file}.106r.sibling}. -@item -dj @itemx -fdump-rtl-jump -@opindex dj @opindex fdump-rtl-jump Dump after the first jump optimization, to @file{@var{file}.112r.jump}. -@item -dk @itemx -fdump-rtl-stack -@opindex dk @opindex fdump-rtl-stack Dump after conversion from GCC's "flat register file" registers to the x87's stack-like registers, to @file{@var{file}.152r.stack}. -@item -dl @itemx -fdump-rtl-lreg -@opindex dl @opindex fdump-rtl-lreg Dump after local register allocation, to @file{@var{file}.138r.lreg}. -@item -dL @itemx -fdump-rtl-loop2 -@opindex dL @opindex fdump-rtl-loop2 @option{-dL} and @option{-fdump-rtl-loop2} enable dumping after the loop optimization pass, to @file{@var{file}.119r.loop2}, @@ -4561,107 +4533,75 @@ loop optimization pass, to @file{@var{file}.119r.loop2}, @file{@var{file}.121r.loop2_invariant}, and @file{@var{file}.125r.loop2_done}. -@item -dm @itemx -fdump-rtl-sms -@opindex dm @opindex fdump-rtl-sms Dump after modulo scheduling, to @file{@var{file}.136r.sms}. -@item -dM @itemx -fdump-rtl-mach -@opindex dM @opindex fdump-rtl-mach Dump after performing the machine dependent reorganization pass, to @file{@var{file}.155r.mach} if that pass exists. -@item -dn @itemx -fdump-rtl-rnreg -@opindex dn @opindex fdump-rtl-rnreg Dump after register renumbering, to @file{@var{file}.147r.rnreg}. -@item -dN @itemx -fdump-rtl-regmove -@opindex dN @opindex fdump-rtl-regmove Dump after the register move pass, to @file{@var{file}.132r.regmove}. -@item -do @itemx -fdump-rtl-postreload -@opindex do @opindex fdump-rtl-postreload Dump after post-reload optimizations, to @file{@var{file}.24.postreload}. -@item -dr @itemx -fdump-rtl-expand -@opindex dr @opindex fdump-rtl-expand Dump after RTL generation, to @file{@var{file}.104r.expand}. -@item -dR @itemx -fdump-rtl-sched2 -@opindex dR @opindex fdump-rtl-sched2 Dump after the second scheduling pass, to @file{@var{file}.149r.sched2}. -@item -ds @itemx -fdump-rtl-cse -@opindex ds @opindex fdump-rtl-cse Dump after CSE (including the jump optimization that sometimes follows CSE), to @file{@var{file}.113r.cse}. -@item -dS @itemx -fdump-rtl-sched1 -@opindex dS @opindex fdump-rtl-sched1 Dump after the first scheduling pass, to @file{@var{file}.136r.sched1}. -@item -dt @itemx -fdump-rtl-cse2 -@opindex dt @opindex fdump-rtl-cse2 Dump after the second CSE pass (including the jump optimization that sometimes follows CSE), to @file{@var{file}.127r.cse2}. -@item -dT @itemx -fdump-rtl-tracer -@opindex dT @opindex fdump-rtl-tracer Dump after running tracer, to @file{@var{file}.118r.tracer}. -@item -dV @itemx -fdump-rtl-vpt @itemx -fdump-rtl-vartrack -@opindex dV @opindex fdump-rtl-vpt @opindex fdump-rtl-vartrack -@option{-dV} and @option{-fdump-rtl-vpt} enable dumping after the value -profile transformations, to @file{@var{file}.10.vpt}. @option{-dV} -and @option{-fdump-rtl-vartrack} enable dumping after variable tracking, +@option{-fdump-rtl-vpt} enable dumping after the value +profile transformations, to @file{@var{file}.10.vpt}. +@option{-fdump-rtl-vartrack} enable dumping after variable tracking, to @file{@var{file}.154r.vartrack}. -@item -dw @itemx -fdump-rtl-flow2 -@opindex dw @opindex fdump-rtl-flow2 Dump after the second flow pass, to @file{@var{file}.142r.flow2}. -@item -dz @itemx -fdump-rtl-peephole2 -@opindex dz @opindex fdump-rtl-peephole2 Dump after the peephole pass, to @file{@var{file}.145r.peephole2}. -@item -dZ @itemx -fdump-rtl-web -@opindex dZ @opindex fdump-rtl-web Dump after live range splitting, to @file{@var{file}.126r.web}. -@item -da @itemx -fdump-rtl-all -@opindex da @opindex fdump-rtl-all Produce all the dumps listed above. @@ -3303,8 +3303,10 @@ gate_dse2 (void) && dbg_cnt (dse2); } -struct tree_opt_pass pass_rtl_dse1 = +struct rtl_opt_pass pass_rtl_dse1 = { + { + RTL_PASS, "dse1", /* name */ gate_dse1, /* gate */ rest_of_handle_dse, /* execute */ @@ -3318,12 +3320,14 @@ struct tree_opt_pass pass_rtl_dse1 = 0, /* todo_flags_start */ TODO_dump_func | TODO_df_finish | TODO_verify_rtl_sharing | - TODO_ggc_collect, /* todo_flags_finish */ - 'w' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_rtl_dse2 = +struct rtl_opt_pass pass_rtl_dse2 = { + { + RTL_PASS, "dse2", /* name */ gate_dse2, /* gate */ rest_of_handle_dse, /* execute */ @@ -3337,6 +3341,6 @@ struct tree_opt_pass pass_rtl_dse2 = 0, /* todo_flags_start */ TODO_dump_func | TODO_df_finish | TODO_verify_rtl_sharing | - TODO_ggc_collect, /* todo_flags_finish */ - 'w' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 8628d52..02680a9 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2181,8 +2181,10 @@ unshare_all_rtl (void) return 0; } -struct tree_opt_pass pass_unshare_all_rtl = +struct rtl_opt_pass pass_unshare_all_rtl = { + { + RTL_PASS, "unshare", /* name */ NULL, /* gate */ unshare_all_rtl, /* execute */ @@ -2194,8 +2196,8 @@ struct tree_opt_pass pass_unshare_all_rtl = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; diff --git a/gcc/except.c b/gcc/except.c index 0fbda61..9c18ebd 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -2843,8 +2843,10 @@ set_nothrow_function_flags (void) return 0; } -struct tree_opt_pass pass_set_nothrow_function_flags = +struct rtl_opt_pass pass_set_nothrow_function_flags = { + { + RTL_PASS, NULL, /* name */ NULL, /* gate */ set_nothrow_function_flags, /* execute */ @@ -2857,7 +2859,7 @@ struct tree_opt_pass pass_set_nothrow_function_flags = 0, /* properties_destroyed */ 0, /* todo_flags_start */ 0, /* todo_flags_finish */ - 0 /* letter */ + } }; @@ -3372,8 +3374,10 @@ convert_to_eh_region_ranges (void) return 0; } -struct tree_opt_pass pass_convert_to_eh_region_ranges = +struct rtl_opt_pass pass_convert_to_eh_region_ranges = { + { + RTL_PASS, "eh-ranges", /* name */ NULL, /* gate */ convert_to_eh_region_ranges, /* execute */ @@ -3386,7 +3390,7 @@ struct tree_opt_pass pass_convert_to_eh_region_ranges = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + } }; @@ -3995,8 +3999,10 @@ rest_of_handle_eh (void) return 0; } -struct tree_opt_pass pass_rtl_eh = +struct rtl_opt_pass pass_rtl_eh = { + { + RTL_PASS, "eh", /* name */ gate_handle_eh, /* gate */ rest_of_handle_eh, /* execute */ @@ -4008,8 +4014,8 @@ struct tree_opt_pass pass_rtl_eh = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 'h' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; #include "gt-except.h" diff --git a/gcc/final.c b/gcc/final.c index 05d60d5..189b83f 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -794,8 +794,10 @@ compute_alignments (void) return 0; } -struct tree_opt_pass pass_compute_alignments = +struct rtl_opt_pass pass_compute_alignments = { + { + RTL_PASS, "alignments", /* name */ NULL, /* gate */ compute_alignments, /* execute */ @@ -808,8 +810,8 @@ struct tree_opt_pass pass_compute_alignments = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing - | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + | TODO_ggc_collect /* todo_flags_finish */ + } }; @@ -4169,8 +4171,10 @@ rest_of_handle_final (void) return 0; } -struct tree_opt_pass pass_final = +struct rtl_opt_pass pass_final = { + { + RTL_PASS, NULL, /* name */ NULL, /* gate */ rest_of_handle_final, /* execute */ @@ -4182,8 +4186,8 @@ struct tree_opt_pass pass_final = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; @@ -4195,8 +4199,10 @@ rest_of_handle_shorten_branches (void) return 0; } -struct tree_opt_pass pass_shorten_branches = +struct rtl_opt_pass pass_shorten_branches = { + { + RTL_PASS, "shorten", /* name */ NULL, /* gate */ rest_of_handle_shorten_branches, /* execute */ @@ -4208,8 +4214,8 @@ struct tree_opt_pass pass_shorten_branches = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -4277,8 +4283,10 @@ rest_of_clean_state (void) return 0; } -struct tree_opt_pass pass_clean_state = +struct rtl_opt_pass pass_clean_state = { + { + RTL_PASS, NULL, /* name */ NULL, /* gate */ rest_of_clean_state, /* execute */ @@ -4290,7 +4298,7 @@ struct tree_opt_pass pass_clean_state = 0, /* properties_provided */ PROP_rtl, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/function.c b/gcc/function.c index 275b702..4e2da89 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -1737,8 +1737,10 @@ instantiate_virtual_regs (void) return 0; } -struct tree_opt_pass pass_instantiate_virtual_regs = +struct rtl_opt_pass pass_instantiate_virtual_regs = { + { + RTL_PASS, "vregs", /* name */ NULL, /* gate */ instantiate_virtual_regs, /* execute */ @@ -1750,8 +1752,8 @@ struct tree_opt_pass pass_instantiate_virtual_regs = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -4042,8 +4044,10 @@ init_function_for_compilation (void) return 0; } -struct tree_opt_pass pass_init_function = +struct rtl_opt_pass pass_init_function = { + { + RTL_PASS, NULL, /* name */ NULL, /* gate */ init_function_for_compilation, /* execute */ @@ -4055,8 +4059,8 @@ struct tree_opt_pass pass_init_function = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; @@ -5595,8 +5599,10 @@ used_types_insert (tree t) used_types_insert_helper (t, cfun); } -struct tree_opt_pass pass_leaf_regs = +struct rtl_opt_pass pass_leaf_regs = { + { + RTL_PASS, NULL, /* name */ NULL, /* gate */ rest_of_handle_check_leaf_regs, /* execute */ @@ -5608,8 +5614,8 @@ struct tree_opt_pass pass_leaf_regs = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; static unsigned int @@ -5626,8 +5632,10 @@ rest_of_handle_thread_prologue_and_epilogue (void) return 0; } -struct tree_opt_pass pass_thread_prologue_and_epilogue = +struct rtl_opt_pass pass_thread_prologue_and_epilogue = { + { + RTL_PASS, "pro_and_epilogue", /* name */ NULL, /* gate */ rest_of_handle_thread_prologue_and_epilogue, /* execute */ @@ -5642,8 +5650,8 @@ struct tree_opt_pass pass_thread_prologue_and_epilogue = TODO_dump_func | TODO_df_verify | TODO_df_finish | TODO_verify_rtl_sharing | - TODO_ggc_collect, /* todo_flags_finish */ - 'w' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; @@ -5823,8 +5831,10 @@ rest_of_match_asm_constraints (void) return TODO_df_finish; } -struct tree_opt_pass pass_match_asm_constraints = +struct rtl_opt_pass pass_match_asm_constraints = { + { + RTL_PASS, "asmcons", /* name */ NULL, /* gate */ rest_of_match_asm_constraints, /* execute */ @@ -5836,8 +5846,8 @@ struct tree_opt_pass pass_match_asm_constraints = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/fwprop.c b/gcc/fwprop.c index 089c571..b0ae1ba 100644 --- a/gcc/fwprop.c +++ b/gcc/fwprop.c @@ -1021,8 +1021,10 @@ fwprop (void) return 0; } -struct tree_opt_pass pass_rtl_fwprop = +struct rtl_opt_pass pass_rtl_fwprop = { + { + RTL_PASS, "fwprop1", /* name */ gate_fwprop, /* gate */ fwprop, /* execute */ @@ -1035,8 +1037,8 @@ struct tree_opt_pass pass_rtl_fwprop = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; static unsigned int @@ -1063,8 +1065,10 @@ fwprop_addr (void) return 0; } -struct tree_opt_pass pass_rtl_fwprop_addr = +struct rtl_opt_pass pass_rtl_fwprop_addr = { + { + RTL_PASS, "fwprop2", /* name */ gate_fwprop, /* gate */ fwprop_addr, /* execute */ @@ -1077,6 +1081,6 @@ struct tree_opt_pass pass_rtl_fwprop_addr = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -6691,8 +6691,10 @@ rest_of_handle_jump_bypass (void) return 0; } -struct tree_opt_pass pass_jump_bypass = +struct rtl_opt_pass pass_jump_bypass = { + { + RTL_PASS, "bypass", /* name */ gate_handle_jump_bypass, /* gate */ rest_of_handle_jump_bypass, /* execute */ @@ -6705,8 +6707,8 @@ struct tree_opt_pass pass_jump_bypass = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | - TODO_ggc_collect | TODO_verify_flow, /* todo_flags_finish */ - 'G' /* letter */ + TODO_ggc_collect | TODO_verify_flow /* todo_flags_finish */ + } }; @@ -6760,8 +6762,10 @@ rest_of_handle_gcse (void) return 0; } -struct tree_opt_pass pass_gcse = +struct rtl_opt_pass pass_gcse = { + { + RTL_PASS, "gcse1", /* name */ gate_handle_gcse, /* gate */ rest_of_handle_gcse, /* execute */ @@ -6775,8 +6779,8 @@ struct tree_opt_pass pass_gcse = 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | - TODO_verify_flow | TODO_ggc_collect, /* todo_flags_finish */ - 'G' /* letter */ + TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c index 7330464..09ca304 100644 --- a/gcc/gimple-low.c +++ b/gcc/gimple-low.c @@ -148,8 +148,10 @@ lower_function_body (void) return 0; } -struct tree_opt_pass pass_lower_cf = +struct gimple_opt_pass pass_lower_cf = { + { + GIMPLE_PASS, "lower", /* name */ NULL, /* gate */ lower_function_body, /* execute */ @@ -161,8 +163,8 @@ struct tree_opt_pass pass_lower_cf = PROP_gimple_lcf, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -790,8 +792,10 @@ mark_used_blocks (void) } -struct tree_opt_pass pass_mark_used_blocks = +struct gimple_opt_pass pass_mark_used_blocks = { + { + GIMPLE_PASS, "blocks", /* name */ NULL, /* gate */ mark_used_blocks, /* execute */ @@ -803,6 +807,6 @@ struct tree_opt_pass pass_mark_used_blocks = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/global.c b/gcc/global.c index ca9f4fb..f88da11 100644 --- a/gcc/global.c +++ b/gcc/global.c @@ -1783,7 +1783,7 @@ rest_of_handle_global_alloc (void) failure = reload (get_insns (), 0); } - if (dump_enabled_p (pass_global_alloc.static_pass_number)) + if (dump_enabled_p (pass_global_alloc.pass.static_pass_number)) { timevar_push (TV_DUMP); dump_global_regs (dump_file); @@ -1817,8 +1817,10 @@ rest_of_handle_global_alloc (void) return 0; } -struct tree_opt_pass pass_global_alloc = +struct rtl_opt_pass pass_global_alloc = { + { + RTL_PASS, "greg", /* name */ NULL, /* gate */ rest_of_handle_global_alloc, /* execute */ @@ -1831,7 +1833,7 @@ struct tree_opt_pass pass_global_alloc = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing - | TODO_ggc_collect, /* todo_flags_finish */ - 'g' /* letter */ + | TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index cab4fbd..98b707a 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -4143,8 +4143,10 @@ rest_of_handle_if_conversion (void) return 0; } -struct tree_opt_pass pass_rtl_ifcvt = +struct rtl_opt_pass pass_rtl_ifcvt = { + { + RTL_PASS, "ce1", /* name */ gate_handle_if_conversion, /* gate */ rest_of_handle_if_conversion, /* execute */ @@ -4157,8 +4159,8 @@ struct tree_opt_pass pass_rtl_ifcvt = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 'C' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; static bool @@ -4178,8 +4180,10 @@ rest_of_handle_if_after_combine (void) return 0; } -struct tree_opt_pass pass_if_after_combine = +struct rtl_opt_pass pass_if_after_combine = { + { + RTL_PASS, "ce2", /* name */ gate_handle_if_after_combine, /* gate */ rest_of_handle_if_after_combine, /* execute */ @@ -4193,8 +4197,8 @@ struct tree_opt_pass pass_if_after_combine = 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'C' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; @@ -4213,8 +4217,10 @@ rest_of_handle_if_after_reload (void) } -struct tree_opt_pass pass_if_after_reload = +struct rtl_opt_pass pass_if_after_reload = { + { + RTL_PASS, "ce3", /* name */ gate_handle_if_after_reload, /* gate */ rest_of_handle_if_after_reload, /* execute */ @@ -4228,6 +4234,6 @@ struct tree_opt_pass pass_if_after_reload = 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'E' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/init-regs.c b/gcc/init-regs.c index b835de0..83abe71 100644 --- a/gcc/init-regs.c +++ b/gcc/init-regs.c @@ -139,8 +139,10 @@ rest_of_handle_initialize_regs (void) return 0; } -struct tree_opt_pass pass_initialize_regs = +struct rtl_opt_pass pass_initialize_regs = { + { + RTL_PASS, "init-regs", /* name */ gate_initialize_regs, /* gate */ rest_of_handle_initialize_regs, /* execute */ @@ -153,6 +155,6 @@ struct tree_opt_pass pass_initialize_regs = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | - TODO_df_finish, /* todo_flags_finish */ - 0 /* letter */ + TODO_df_finish /* todo_flags_finish */ + } }; diff --git a/gcc/integrate.c b/gcc/integrate.c index 7eb29f2..55ac31d 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -298,8 +298,10 @@ emit_initial_value_sets (void) return 0; } -struct tree_opt_pass pass_initial_value_sets = +struct rtl_opt_pass pass_initial_value_sets = { + { + RTL_PASS, "initvals", /* name */ NULL, /* gate */ emit_initial_value_sets, /* execute */ @@ -311,8 +313,8 @@ struct tree_opt_pass pass_initial_value_sets = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* If the backend knows where to allocate pseudos for hard diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index 088319d..4d9e0a4 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -1136,7 +1136,10 @@ cgraph_gate_cp (void) return flag_ipa_cp; } -struct tree_opt_pass pass_ipa_cp = { +struct simple_ipa_opt_pass pass_ipa_cp = +{ + { + SIMPLE_IPA_PASS, "cp", /* name */ cgraph_gate_cp, /* gate */ ipcp_driver, /* execute */ @@ -1148,6 +1151,6 @@ struct tree_opt_pass pass_ipa_cp = { PROP_trees, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_cgraph | TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_cgraph | TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 06d00e3..f251fbe 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1426,8 +1426,10 @@ cgraph_gate_inlining (void) return flag_inline_trees; } -struct tree_opt_pass pass_ipa_inline = +struct simple_ipa_opt_pass pass_ipa_inline = { + { + SIMPLE_IPA_PASS, "inline", /* name */ cgraph_gate_inlining, /* gate */ cgraph_decide_inlining, /* execute */ @@ -1440,8 +1442,8 @@ struct tree_opt_pass pass_ipa_inline = 0, /* properties_destroyed */ TODO_remove_functions, /* todo_flags_finish */ TODO_dump_cgraph | TODO_dump_func - | TODO_remove_functions, /* todo_flags_finish */ - 0 /* letter */ + | TODO_remove_functions /* todo_flags_finish */ + } }; /* Because inlining might remove no-longer reachable nodes, we need to @@ -1479,8 +1481,10 @@ cgraph_gate_early_inlining (void) return flag_inline_trees && flag_early_inlining; } -struct tree_opt_pass pass_early_inline = +struct gimple_opt_pass pass_early_inline = { + { + GIMPLE_PASS, "einline", /* name */ cgraph_gate_early_inlining, /* gate */ cgraph_early_inlining, /* execute */ @@ -1492,8 +1496,8 @@ struct tree_opt_pass pass_early_inline = PROP_cfg, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* When inlining shall be performed. */ @@ -1507,8 +1511,10 @@ cgraph_gate_ipa_early_inlining (void) /* IPA pass wrapper for early inlining pass. We need to run early inlining before tree profiling so we have stand alone IPA pass for doing so. */ -struct tree_opt_pass pass_ipa_early_inline = +struct simple_ipa_opt_pass pass_ipa_early_inline = { + { + SIMPLE_IPA_PASS, "einline_ipa", /* name */ cgraph_gate_ipa_early_inlining, /* gate */ NULL, /* execute */ @@ -1520,8 +1526,8 @@ struct tree_opt_pass pass_ipa_early_inline = PROP_cfg, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_cgraph, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_cgraph /* todo_flags_finish */ + } }; /* Compute parameters of functions used by inliner. */ @@ -1554,8 +1560,10 @@ gate_inline_passes (void) return flag_inline_trees; } -struct tree_opt_pass pass_inline_parameters = +struct gimple_opt_pass pass_inline_parameters = { + { + GIMPLE_PASS, NULL, /* name */ gate_inline_passes, /* gate */ compute_inline_parameters, /* execute */ @@ -1567,8 +1575,8 @@ struct tree_opt_pass pass_inline_parameters = PROP_cfg, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Apply inline plan to the function. */ @@ -1609,8 +1617,10 @@ apply_inline (void) return todo | execute_fixup_cfg (); } -struct tree_opt_pass pass_apply_inline = +struct gimple_opt_pass pass_apply_inline = { + { + GIMPLE_PASS, "apply_inline", /* name */ NULL, /* gate */ apply_inline, /* execute */ @@ -1623,8 +1633,8 @@ struct tree_opt_pass pass_apply_inline = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_flow - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; #include "gt-ipa-inline.h" diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c index eb4262a..c180e35 100644 --- a/gcc/ipa-pure-const.c +++ b/gcc/ipa-pure-const.c @@ -769,8 +769,10 @@ gate_pure_const (void) && !(errorcount || sorrycount)); } -struct tree_opt_pass pass_ipa_pure_const = +struct simple_ipa_opt_pass pass_ipa_pure_const = { + { + SIMPLE_IPA_PASS, "pure-const", /* name */ gate_pure_const, /* gate */ static_execute, /* execute */ @@ -782,8 +784,8 @@ struct tree_opt_pass pass_ipa_pure_const = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c index 87d8c2fa..71c0ec5 100644 --- a/gcc/ipa-reference.c +++ b/gcc/ipa-reference.c @@ -1319,8 +1319,10 @@ gate_reference (void) && !(errorcount || sorrycount)); } -struct tree_opt_pass pass_ipa_reference = +struct simple_ipa_opt_pass pass_ipa_reference = { + { + SIMPLE_IPA_PASS, "static-var", /* name */ gate_reference, /* gate */ static_execute, /* execute */ @@ -1332,8 +1334,8 @@ struct tree_opt_pass pass_ipa_reference = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; #include "gt-ipa-reference.h" diff --git a/gcc/ipa-struct-reorg.c b/gcc/ipa-struct-reorg.c index 515dba6..10eedec 100644 --- a/gcc/ipa-struct-reorg.c +++ b/gcc/ipa-struct-reorg.c @@ -4038,8 +4038,10 @@ struct_reorg_gate (void) && (optimize > 0); } -struct tree_opt_pass pass_ipa_struct_reorg = +struct simple_ipa_opt_pass pass_ipa_struct_reorg = { + { + SIMPLE_IPA_PASS, "ipa_struct_reorg", /* name */ struct_reorg_gate, /* gate */ reorg_structs_drive, /* execute */ @@ -4051,6 +4053,6 @@ struct tree_opt_pass pass_ipa_struct_reorg = 0, /* properties_provided */ 0, /* properties_destroyed */ TODO_verify_ssa, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/ipa-type-escape.c b/gcc/ipa-type-escape.c index 2aedb95..9cd9caa 100644 --- a/gcc/ipa-type-escape.c +++ b/gcc/ipa-type-escape.c @@ -2196,8 +2196,10 @@ gate_type_escape_vars (void) && !(errorcount || sorrycount)); } -struct tree_opt_pass pass_ipa_type_escape = +struct simple_ipa_opt_pass pass_ipa_type_escape = { + { + SIMPLE_IPA_PASS, "type-escape-var", /* name */ gate_type_escape_vars, /* gate */ type_escape_execute, /* execute */ @@ -2209,7 +2211,7 @@ struct tree_opt_pass pass_ipa_type_escape = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; @@ -278,8 +278,10 @@ function_and_variable_visibility (void) return 0; } -struct tree_opt_pass pass_ipa_function_and_variable_visibility = +struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility = { + { + SIMPLE_IPA_PASS, "visibility", /* name */ NULL, /* gate */ function_and_variable_visibility, /* execute */ @@ -291,6 +293,6 @@ struct tree_opt_pass pass_ipa_function_and_variable_visibility = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_remove_functions | TODO_dump_cgraph,/* todo_flags_finish */ - 0 /* letter */ + TODO_remove_functions | TODO_dump_cgraph/* todo_flags_finish */ + } }; @@ -122,8 +122,10 @@ cleanup_barriers (void) return 0; } -struct tree_opt_pass pass_cleanup_barriers = +struct rtl_opt_pass pass_cleanup_barriers = { + { + RTL_PASS, "barriers", /* name */ NULL, /* gate */ cleanup_barriers, /* execute */ @@ -135,8 +137,8 @@ struct tree_opt_pass pass_cleanup_barriers = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index 9569a36..0d6d908 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -2632,8 +2632,10 @@ rest_of_handle_local_alloc (void) return 0; } -struct tree_opt_pass pass_local_alloc = +struct rtl_opt_pass pass_local_alloc = { + { + RTL_PASS, "lreg", /* name */ NULL, /* gate */ rest_of_handle_local_alloc, /* execute */ @@ -2646,7 +2648,7 @@ struct tree_opt_pass pass_local_alloc = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'l' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/loop-init.c b/gcc/loop-init.c index 57f9768..8337571 100644 --- a/gcc/loop-init.c +++ b/gcc/loop-init.c @@ -140,8 +140,10 @@ gate_handle_loop2 (void) )); } -struct tree_opt_pass pass_loop2 = +struct rtl_opt_pass pass_loop2 = { + { + RTL_PASS, "loop2", /* name */ gate_handle_loop2, /* gate */ NULL, /* execute */ @@ -154,8 +156,8 @@ struct tree_opt_pass pass_loop2 = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'L' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; @@ -172,8 +174,10 @@ rtl_loop_init (void) return 0; } -struct tree_opt_pass pass_rtl_loop_init = +struct rtl_opt_pass pass_rtl_loop_init = { + { + RTL_PASS, "loop2_init", /* name */ NULL, /* gate */ rtl_loop_init, /* execute */ @@ -185,8 +189,8 @@ struct tree_opt_pass pass_rtl_loop_init = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 'L' /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; @@ -205,8 +209,10 @@ rtl_loop_done (void) return 0; } -struct tree_opt_pass pass_rtl_loop_done = +struct rtl_opt_pass pass_rtl_loop_done = { + { + RTL_PASS, "loop2_done", /* name */ NULL, /* gate */ rtl_loop_done, /* execute */ @@ -218,8 +224,8 @@ struct tree_opt_pass pass_rtl_loop_done = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 'L' /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; @@ -238,8 +244,10 @@ rtl_move_loop_invariants (void) return 0; } -struct tree_opt_pass pass_rtl_move_loop_invariants = +struct rtl_opt_pass pass_rtl_move_loop_invariants = { + { + RTL_PASS, "loop2_invariant", /* name */ gate_rtl_move_loop_invariants, /* gate */ rtl_move_loop_invariants, /* execute */ @@ -253,8 +261,8 @@ struct tree_opt_pass pass_rtl_move_loop_invariants = 0, /* todo_flags_start */ TODO_df_verify | TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 'L' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -273,8 +281,10 @@ rtl_unswitch (void) return 0; } -struct tree_opt_pass pass_rtl_unswitch = +struct rtl_opt_pass pass_rtl_unswitch = { + { + RTL_PASS, "loop2_unswitch", /* name */ gate_rtl_unswitch, /* gate */ rtl_unswitch, /* execute */ @@ -287,7 +297,7 @@ struct tree_opt_pass pass_rtl_unswitch = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 'L' /* letter */ + } }; @@ -319,8 +329,10 @@ rtl_unroll_and_peel_loops (void) return 0; } -struct tree_opt_pass pass_rtl_unroll_and_peel_loops = +struct rtl_opt_pass pass_rtl_unroll_and_peel_loops = { + { + RTL_PASS, "loop2_unroll", /* name */ gate_rtl_unroll_and_peel_loops, /* gate */ rtl_unroll_and_peel_loops, /* execute */ @@ -333,7 +345,7 @@ struct tree_opt_pass pass_rtl_unroll_and_peel_loops = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 'L' /* letter */ + } }; @@ -358,8 +370,10 @@ rtl_doloop (void) return 0; } -struct tree_opt_pass pass_rtl_doloop = +struct rtl_opt_pass pass_rtl_doloop = { + { + RTL_PASS, "loop2_doloop", /* name */ gate_rtl_doloop, /* gate */ rtl_doloop, /* execute */ @@ -371,7 +385,7 @@ struct tree_opt_pass pass_rtl_doloop = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 'L' /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index fa3a2c8..c3b29a8 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -1425,8 +1425,10 @@ rest_of_handle_lower_subreg2 (void) return 0; } -struct tree_opt_pass pass_lower_subreg = +struct rtl_opt_pass pass_lower_subreg = { + { + RTL_PASS, "subreg", /* name */ gate_handle_lower_subreg, /* gate */ rest_of_handle_lower_subreg, /* execute */ @@ -1440,12 +1442,14 @@ struct tree_opt_pass pass_lower_subreg = 0, /* todo_flags_start */ TODO_dump_func | TODO_ggc_collect | - TODO_verify_flow, /* todo_flags_finish */ - 'u' /* letter */ + TODO_verify_flow /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_lower_subreg2 = +struct rtl_opt_pass pass_lower_subreg2 = { + { + RTL_PASS, "subreg2", /* name */ gate_handle_lower_subreg, /* gate */ rest_of_handle_lower_subreg2, /* execute */ @@ -1460,6 +1464,6 @@ struct tree_opt_pass pass_lower_subreg2 = TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | TODO_ggc_collect | - TODO_verify_flow, /* todo_flags_finish */ - 'U' /* letter */ + TODO_verify_flow /* todo_flags_finish */ + } }; diff --git a/gcc/matrix-reorg.c b/gcc/matrix-reorg.c index 38b0d5e..8a2734d 100644 --- a/gcc/matrix-reorg.c +++ b/gcc/matrix-reorg.c @@ -2317,7 +2317,10 @@ gate_matrix_reorg (void) return flag_ipa_matrix_reorg && flag_whole_program; } -struct tree_opt_pass pass_ipa_matrix_reorg = { +struct simple_ipa_opt_pass pass_ipa_matrix_reorg = +{ + { + SIMPLE_IPA_PASS, "matrix-reorg", /* name */ gate_matrix_reorg, /* gate */ matrix_reorg, /* execute */ @@ -2329,6 +2332,6 @@ struct tree_opt_pass pass_ipa_matrix_reorg = { PROP_trees, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_cgraph | TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_cgraph | TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c index 5f4f95f..23269b8 100644 --- a/gcc/mode-switching.c +++ b/gcc/mode-switching.c @@ -756,8 +756,10 @@ rest_of_handle_mode_switching (void) } -struct tree_opt_pass pass_mode_switching = +struct rtl_opt_pass pass_mode_switching = { + { + RTL_PASS, "mode-sw", /* name */ gate_mode_switching, /* gate */ rest_of_handle_mode_switching, /* execute */ @@ -770,6 +772,6 @@ struct tree_opt_pass pass_mode_switching = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index 3d710ad..f2193d4 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -2871,8 +2871,10 @@ rest_of_handle_sms (void) return 0; } -struct tree_opt_pass pass_sms = +struct rtl_opt_pass pass_sms = { + { + RTL_PASS, "sms", /* name */ gate_handle_sms, /* gate */ rest_of_handle_sms, /* execute */ @@ -2886,7 +2888,7 @@ struct tree_opt_pass pass_sms = TODO_dump_func, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'm' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 340c621..45602c2 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -4195,8 +4195,10 @@ gate_expand_omp_ssa (void) return flag_openmp_ssa && flag_openmp != 0 && errorcount == 0; } -struct tree_opt_pass pass_expand_omp_ssa = +struct gimple_opt_pass pass_expand_omp_ssa = { + { + GIMPLE_PASS, "ompexpssa", /* name */ gate_expand_omp_ssa, /* gate */ execute_expand_omp, /* execute */ @@ -4208,8 +4210,8 @@ struct tree_opt_pass pass_expand_omp_ssa = PROP_gimple_lomp, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* OMP expansion -- the default pass, run before creation of SSA form. */ @@ -4221,8 +4223,10 @@ gate_expand_omp (void) && flag_openmp != 0 && errorcount == 0); } -struct tree_opt_pass pass_expand_omp = +struct gimple_opt_pass pass_expand_omp = { + { + GIMPLE_PASS, "ompexp", /* name */ gate_expand_omp, /* gate */ execute_expand_omp, /* execute */ @@ -4234,8 +4238,8 @@ struct tree_opt_pass pass_expand_omp = PROP_gimple_lomp, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* Routines to lower OpenMP directives into OMP-GIMPLE. */ @@ -5081,8 +5085,10 @@ gate_lower_omp (void) return flag_openmp != 0; } -struct tree_opt_pass pass_lower_omp = +struct gimple_opt_pass pass_lower_omp = { + { + GIMPLE_PASS, "omplower", /* name */ gate_lower_omp, /* gate */ execute_lower_omp, /* execute */ @@ -5094,8 +5100,8 @@ struct tree_opt_pass pass_lower_omp = PROP_gimple_lomp, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* The following is a utility to diagnose OpenMP structured block violations. diff --git a/gcc/passes.c b/gcc/passes.c index bec473a..833bdbd 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -104,7 +104,7 @@ along with GCC; see the file COPYING3. If not see /* This is used for debugging. It allows the current pass to printed from anywhere in compilation. */ -struct tree_opt_pass *current_pass; +struct opt_pass *current_pass; /* Call from anywhere to find out what pass this is. Useful for printing out debugging information deep inside an service @@ -246,19 +246,19 @@ finish_optimization_passes (void) timevar_push (TV_DUMP); if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) { - dump_file = dump_begin (pass_profile.static_pass_number, NULL); + dump_file = dump_begin (pass_profile.pass.static_pass_number, NULL); end_branch_prob (); if (dump_file) - dump_end (pass_profile.static_pass_number, dump_file); + dump_end (pass_profile.pass.static_pass_number, dump_file); } if (optimize > 0) { - dump_file = dump_begin (pass_combine.static_pass_number, NULL); + dump_file = dump_begin (pass_combine.pass.static_pass_number, NULL); if (dump_file) { dump_combine_total_stats (dump_file); - dump_end (pass_combine.static_pass_number, dump_file); + dump_end (pass_combine.pass.static_pass_number, dump_file); } } @@ -284,8 +284,10 @@ gate_rest_of_compilation (void) return !(rtl_dump_and_exit || flag_syntax_only || errorcount || sorrycount); } -struct tree_opt_pass pass_rest_of_compilation = +struct gimple_opt_pass pass_rest_of_compilation = { + { + GIMPLE_PASS, NULL, /* name */ gate_rest_of_compilation, /* gate */ NULL, /* execute */ @@ -297,8 +299,8 @@ struct tree_opt_pass pass_rest_of_compilation = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; static bool @@ -307,8 +309,10 @@ gate_postreload (void) return reload_completed; } -struct tree_opt_pass pass_postreload = +struct rtl_opt_pass pass_postreload = { + { + RTL_PASS, NULL, /* name */ gate_postreload, /* gate */ NULL, /* execute */ @@ -320,21 +324,21 @@ struct tree_opt_pass pass_postreload = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_ggc_collect | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 0 /* letter */ + TODO_ggc_collect | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; /* The root of the compilation pass tree, once constructed. */ -struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; +struct opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes; /* 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. */ static void -register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties) +register_one_dump_file (struct opt_pass *pass, bool ipa, int properties) { char *dot_name, *flag_name, *glob_name; const char *prefix; @@ -358,13 +362,13 @@ register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties) flag_name = concat (prefix, pass->name, num, NULL); glob_name = concat (prefix, pass->name, NULL); pass->static_pass_number = dump_register (dot_name, flag_name, glob_name, - flags, pass->letter); + flags); } /* Recursive worker function for register_dump_files. */ static int -register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties) +register_dump_files_1 (struct opt_pass *pass, bool ipa, int properties) { do { @@ -398,7 +402,7 @@ register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties) the pipeline. */ static void -register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties) +register_dump_files (struct opt_pass *pass, bool ipa, int properties) { pass->properties_required |= properties; register_dump_files_1 (pass, ipa, properties); @@ -407,14 +411,14 @@ register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties) /* Add a pass to the pass list. Duplicate the pass if it's already in the list. */ -static struct tree_opt_pass ** -next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass) +static struct opt_pass ** +next_pass_1 (struct opt_pass **list, struct opt_pass *pass) { /* A nonzero static_pass_number indicates that the pass is already in the list. */ if (pass->static_pass_number) { - struct tree_opt_pass *new; + struct opt_pass *new; new = xmalloc (sizeof (*new)); memcpy (new, pass, sizeof (*new)); @@ -467,9 +471,9 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass) void init_optimization_passes (void) { - struct tree_opt_pass **p; + struct opt_pass **p; -#define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS)) +#define NEXT_PASS(PASS) (p = next_pass_1 (p, &((PASS).pass))) /* All passes needed to lower the function into shape optimizers can operate on. These passes are always run first on the function, but @@ -497,21 +501,21 @@ init_optimization_passes (void) NEXT_PASS (pass_ipa_function_and_variable_visibility); NEXT_PASS (pass_ipa_early_inline); { - struct tree_opt_pass **p = &pass_ipa_early_inline.sub; + struct opt_pass **p = &pass_ipa_early_inline.pass.sub; NEXT_PASS (pass_early_inline); NEXT_PASS (pass_inline_parameters); NEXT_PASS (pass_rebuild_cgraph_edges); } NEXT_PASS (pass_early_local_passes); { - struct tree_opt_pass **p = &pass_early_local_passes.sub; + struct opt_pass **p = &pass_early_local_passes.pass.sub; NEXT_PASS (pass_tree_profile); NEXT_PASS (pass_cleanup_cfg); NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_expand_omp); NEXT_PASS (pass_all_early_optimizations); { - struct tree_opt_pass **p = &pass_all_early_optimizations.sub; + struct opt_pass **p = &pass_all_early_optimizations.pass.sub; NEXT_PASS (pass_referenced_vars); NEXT_PASS (pass_reset_cc_flags); NEXT_PASS (pass_build_ssa); @@ -555,7 +559,7 @@ init_optimization_passes (void) NEXT_PASS (pass_apply_inline); NEXT_PASS (pass_all_optimizations); { - struct tree_opt_pass **p = &pass_all_optimizations.sub; + struct opt_pass **p = &pass_all_optimizations.pass.sub; NEXT_PASS (pass_create_structure_vars); /* ??? pass_build_alias is a dummy pass that ensures that we execute TODO_rebuild_alias at this point even if @@ -614,7 +618,7 @@ init_optimization_passes (void) NEXT_PASS (pass_sink_code); NEXT_PASS (pass_tree_loop); { - struct tree_opt_pass **p = &pass_tree_loop.sub; + struct opt_pass **p = &pass_tree_loop.pass.sub; NEXT_PASS (pass_tree_loop_init); NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_dce_loop); @@ -631,7 +635,7 @@ init_optimization_passes (void) NEXT_PASS (pass_if_conversion); NEXT_PASS (pass_vectorize); { - struct tree_opt_pass **p = &pass_vectorize.sub; + struct opt_pass **p = &pass_vectorize.pass.sub; NEXT_PASS (pass_lower_vector_ssa); NEXT_PASS (pass_dce_loop); } @@ -685,7 +689,7 @@ init_optimization_passes (void) NEXT_PASS (pass_expand); NEXT_PASS (pass_rest_of_compilation); { - struct tree_opt_pass **p = &pass_rest_of_compilation.sub; + struct opt_pass **p = &pass_rest_of_compilation.pass.sub; NEXT_PASS (pass_init_function); NEXT_PASS (pass_jump); NEXT_PASS (pass_rtl_eh); @@ -705,7 +709,7 @@ init_optimization_passes (void) efficiently. */ NEXT_PASS (pass_loop2); { - struct tree_opt_pass **p = &pass_loop2.sub; + struct opt_pass **p = &pass_loop2.pass.sub; NEXT_PASS (pass_rtl_loop_init); NEXT_PASS (pass_rtl_move_loop_invariants); NEXT_PASS (pass_rtl_unswitch); @@ -743,7 +747,7 @@ init_optimization_passes (void) NEXT_PASS (pass_subregs_of_mode_finish); NEXT_PASS (pass_postreload); { - struct tree_opt_pass **p = &pass_postreload.sub; + struct opt_pass **p = &pass_postreload.pass.sub; NEXT_PASS (pass_postreload_cse); NEXT_PASS (pass_gcse2); NEXT_PASS (pass_split_after_reload); @@ -764,7 +768,7 @@ init_optimization_passes (void) NEXT_PASS (pass_sched2); NEXT_PASS (pass_stack_regs); { - struct tree_opt_pass **p = &pass_stack_regs.sub; + struct opt_pass **p = &pass_stack_regs.pass.sub; NEXT_PASS (pass_split_before_regstack); NEXT_PASS (pass_stack_regs_run); } @@ -1056,13 +1060,13 @@ verify_curr_properties (void *data) static void update_properties_after_pass (void *data) { - struct tree_opt_pass *pass = data; + struct opt_pass *pass = data; cfun->curr_properties = (cfun->curr_properties | pass->properties_provided) & ~pass->properties_destroyed; } static bool -execute_one_pass (struct tree_opt_pass *pass) +execute_one_pass (struct opt_pass *pass) { bool initializing_dump; unsigned int todo_after = 0; @@ -1169,7 +1173,7 @@ execute_one_pass (struct tree_opt_pass *pass) } void -execute_pass_list (struct tree_opt_pass *pass) +execute_pass_list (struct opt_pass *pass) { do { @@ -1183,7 +1187,7 @@ execute_pass_list (struct tree_opt_pass *pass) /* Same as execute_pass_list but assume that subpasses of IPA passes are local passes. */ void -execute_ipa_pass_list (struct tree_opt_pass *pass) +execute_ipa_pass_list (struct opt_pass *pass) { do { diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c index 805608d..ef78fde 100644 --- a/gcc/postreload-gcse.c +++ b/gcc/postreload-gcse.c @@ -1318,8 +1318,10 @@ rest_of_handle_gcse2 (void) return 0; } -struct tree_opt_pass pass_gcse2 = +struct rtl_opt_pass pass_gcse2 = { + { + RTL_PASS, "gcse2", /* name */ gate_handle_gcse2, /* gate */ rest_of_handle_gcse2, /* execute */ @@ -1332,7 +1334,7 @@ struct tree_opt_pass pass_gcse2 = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_rtl_sharing - | TODO_verify_flow | TODO_ggc_collect,/* todo_flags_finish */ - 'J' /* letter */ + | TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/postreload.c b/gcc/postreload.c index 674160b..7e40728 100644 --- a/gcc/postreload.c +++ b/gcc/postreload.c @@ -1585,8 +1585,10 @@ rest_of_handle_postreload (void) return 0; } -struct tree_opt_pass pass_postreload_cse = +struct rtl_opt_pass pass_postreload_cse = { + { + RTL_PASS, "postreload", /* name */ gate_handle_postreload, /* gate */ rest_of_handle_postreload, /* execute */ @@ -1599,7 +1601,7 @@ struct tree_opt_pass pass_postreload_cse = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 'o' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/predict.c b/gcc/predict.c index a20b352..4174333 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -1939,8 +1939,10 @@ predictor_name (enum br_predictor predictor) return predictor_info[predictor].name; } -struct tree_opt_pass pass_profile = +struct gimple_opt_pass pass_profile = { + { + GIMPLE_PASS, "profile", /* name */ gate_estimate_probability, /* gate */ tree_estimate_probability, /* execute */ @@ -1952,6 +1954,6 @@ struct tree_opt_pass pass_profile = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_ggc_collect | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_ggc_collect | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/recog.c b/gcc/recog.c index 2629adc..7303b2a 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -3312,8 +3312,10 @@ rest_of_handle_peephole2 (void) return 0; } -struct tree_opt_pass pass_peephole2 = +struct rtl_opt_pass pass_peephole2 = { + { + RTL_PASS, "peephole2", /* name */ gate_handle_peephole2, /* gate */ rest_of_handle_peephole2, /* execute */ @@ -3326,8 +3328,8 @@ struct tree_opt_pass pass_peephole2 = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 'z' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; static unsigned int @@ -3337,8 +3339,10 @@ rest_of_handle_split_all_insns (void) return 0; } -struct tree_opt_pass pass_split_all_insns = +struct rtl_opt_pass pass_split_all_insns = { + { + RTL_PASS, "split1", /* name */ NULL, /* gate */ rest_of_handle_split_all_insns, /* execute */ @@ -3350,8 +3354,8 @@ struct tree_opt_pass pass_split_all_insns = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; static unsigned int @@ -3365,8 +3369,10 @@ rest_of_handle_split_after_reload (void) return 0; } -struct tree_opt_pass pass_split_after_reload = +struct rtl_opt_pass pass_split_after_reload = { + { + RTL_PASS, "split2", /* name */ NULL, /* gate */ rest_of_handle_split_after_reload, /* execute */ @@ -3378,8 +3384,8 @@ struct tree_opt_pass pass_split_after_reload = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; static bool @@ -3407,8 +3413,10 @@ rest_of_handle_split_before_regstack (void) return 0; } -struct tree_opt_pass pass_split_before_regstack = +struct rtl_opt_pass pass_split_before_regstack = { + { + RTL_PASS, "split3", /* name */ gate_handle_split_before_regstack, /* gate */ rest_of_handle_split_before_regstack, /* execute */ @@ -3420,8 +3428,8 @@ struct tree_opt_pass pass_split_before_regstack = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; static bool @@ -3443,8 +3451,10 @@ rest_of_handle_split_before_sched2 (void) return 0; } -struct tree_opt_pass pass_split_before_sched2 = +struct rtl_opt_pass pass_split_before_sched2 = { + { + RTL_PASS, "split4", /* name */ gate_handle_split_before_sched2, /* gate */ rest_of_handle_split_before_sched2, /* execute */ @@ -3457,8 +3467,8 @@ struct tree_opt_pass pass_split_before_sched2 = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_verify_flow | - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* The placement of the splitting that we do for shorten_branches @@ -3473,8 +3483,10 @@ gate_do_final_split (void) #endif } -struct tree_opt_pass pass_split_for_shorten_branches = +struct rtl_opt_pass pass_split_for_shorten_branches = { + { + RTL_PASS, "split5", /* name */ gate_do_final_split, /* gate */ split_all_insns_noflow, /* execute */ @@ -3486,8 +3498,8 @@ struct tree_opt_pass pass_split_for_shorten_branches = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c index 248a8c2..5a6443b 100644 --- a/gcc/reg-stack.c +++ b/gcc/reg-stack.c @@ -3202,8 +3202,10 @@ gate_handle_stack_regs (void) #endif } -struct tree_opt_pass pass_stack_regs = +struct rtl_opt_pass pass_stack_regs = { + { + RTL_PASS, NULL, /* name */ gate_handle_stack_regs, /* gate */ NULL, /* execute */ @@ -3215,8 +3217,8 @@ struct tree_opt_pass pass_stack_regs = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Convert register usage from flat register file usage to a stack @@ -3231,8 +3233,10 @@ rest_of_handle_stack_regs (void) return 0; } -struct tree_opt_pass pass_stack_regs_run = +struct rtl_opt_pass pass_stack_regs_run = { + { + RTL_PASS, "stack", /* name */ NULL, /* gate */ rest_of_handle_stack_regs, /* execute */ @@ -3246,6 +3250,6 @@ struct tree_opt_pass pass_stack_regs_run = 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'k' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/regclass.c b/gcc/regclass.c index 911a19a..200f3ee 100644 --- a/gcc/regclass.c +++ b/gcc/regclass.c @@ -1059,8 +1059,10 @@ regclass_init (void) return 1; } -struct tree_opt_pass pass_regclass_init = +struct rtl_opt_pass pass_regclass_init = { + { + RTL_PASS, "regclass", /* name */ NULL, /* gate */ regclass_init, /* execute */ @@ -1072,8 +1074,8 @@ struct tree_opt_pass pass_regclass_init = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 'k' /* letter */ + 0 /* todo_flags_finish */ + } }; @@ -2670,8 +2672,10 @@ gate_subregs_of_mode_init (void) #endif } -struct tree_opt_pass pass_subregs_of_mode_init = +struct rtl_opt_pass pass_subregs_of_mode_init = { + { + RTL_PASS, "subregs_of_mode_init", /* name */ gate_subregs_of_mode_init, /* gate */ init_subregs_of_mode, /* execute */ @@ -2683,12 +2687,14 @@ struct tree_opt_pass pass_subregs_of_mode_init = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_subregs_of_mode_finish = +struct rtl_opt_pass pass_subregs_of_mode_finish = { + { + RTL_PASS, "subregs_of_mode_finish", /* name */ gate_subregs_of_mode_init, /* gate */ finish_subregs_of_mode, /* execute */ @@ -2700,8 +2706,8 @@ struct tree_opt_pass pass_subregs_of_mode_finish = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/regmove.c b/gcc/regmove.c index 5a2f9c9..925cb9d 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -2135,8 +2135,10 @@ rest_of_handle_regmove (void) return 0; } -struct tree_opt_pass pass_regmove = +struct rtl_opt_pass pass_regmove = { + { + RTL_PASS, "regmove", /* name */ gate_handle_regmove, /* gate */ rest_of_handle_regmove, /* execute */ @@ -2150,7 +2152,7 @@ struct tree_opt_pass pass_regmove = 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'N' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/regrename.c b/gcc/regrename.c index 74112c3..cfc0881 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -1938,8 +1938,10 @@ rest_of_handle_regrename (void) return 0; } -struct tree_opt_pass pass_regrename = +struct rtl_opt_pass pass_regrename = { + { + RTL_PASS, "rnreg", /* name */ gate_handle_regrename, /* gate */ rest_of_handle_regrename, /* execute */ @@ -1952,8 +1954,8 @@ struct tree_opt_pass pass_regrename = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 'n' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; static bool @@ -1971,8 +1973,10 @@ rest_of_handle_cprop (void) return 0; } -struct tree_opt_pass pass_cprop_hardreg = +struct rtl_opt_pass pass_cprop_hardreg = { + { + RTL_PASS, "cprop_hardreg", /* name */ gate_handle_cprop, /* gate */ rest_of_handle_cprop, /* execute */ @@ -1984,7 +1988,7 @@ struct tree_opt_pass pass_cprop_hardreg = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ - 'n' /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */ + } }; diff --git a/gcc/reorg.c b/gcc/reorg.c index 985c118..8db19b4 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -4066,8 +4066,10 @@ rest_of_handle_delay_slots (void) return 0; } -struct tree_opt_pass pass_delay_slots = +struct rtl_opt_pass pass_delay_slots = { + { + RTL_PASS, "dbr", /* name */ gate_handle_delay_slots, /* gate */ rest_of_handle_delay_slots, /* execute */ @@ -4080,8 +4082,8 @@ struct tree_opt_pass pass_delay_slots = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'd' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; /* Machine dependent reorg pass. */ @@ -4099,8 +4101,10 @@ rest_of_handle_machine_reorg (void) return 0; } -struct tree_opt_pass pass_machine_reorg = +struct rtl_opt_pass pass_machine_reorg = { + { + RTL_PASS, "mach", /* name */ gate_handle_machine_reorg, /* gate */ rest_of_handle_machine_reorg, /* execute */ @@ -4113,6 +4117,6 @@ struct tree_opt_pass pass_machine_reorg = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'M' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/rtl-factoring.c b/gcc/rtl-factoring.c index 20e9cf2..77c2197 100644 --- a/gcc/rtl-factoring.c +++ b/gcc/rtl-factoring.c @@ -1428,7 +1428,10 @@ rest_of_rtl_seqabstr (void) return 0; } -struct tree_opt_pass pass_rtl_seqabstr = { +struct rtl_opt_pass pass_rtl_seqabstr = +{ + { + RTL_PASS, "seqabstr", /* name */ gate_rtl_seqabstr, /* gate */ rest_of_rtl_seqabstr, /* execute */ @@ -1442,6 +1445,6 @@ struct tree_opt_pass pass_rtl_seqabstr = { 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | - TODO_ggc_collect, /* todo_flags_finish */ - 'Q' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c index b340bd5..e62046b 100644 --- a/gcc/sched-rgn.c +++ b/gcc/sched-rgn.c @@ -3192,8 +3192,10 @@ rest_of_handle_sched2 (void) return 0; } -struct tree_opt_pass pass_sched = +struct rtl_opt_pass pass_sched = { + { + RTL_PASS, "sched1", /* name */ gate_handle_sched, /* gate */ rest_of_handle_sched, /* execute */ @@ -3208,12 +3210,14 @@ struct tree_opt_pass pass_sched = TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | TODO_verify_flow | - TODO_ggc_collect, /* todo_flags_finish */ - 'S' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_sched2 = +struct rtl_opt_pass pass_sched2 = { + { + RTL_PASS, "sched2", /* name */ gate_handle_sched2, /* gate */ rest_of_handle_sched2, /* execute */ @@ -3228,7 +3232,7 @@ struct tree_opt_pass pass_sched2 = TODO_df_finish | TODO_verify_rtl_sharing | TODO_dump_func | TODO_verify_flow | - TODO_ggc_collect, /* todo_flags_finish */ - 'R' /* letter */ + TODO_ggc_collect /* todo_flags_finish */ + } }; @@ -3859,8 +3859,10 @@ rest_of_handle_see (void) return 0; } -struct tree_opt_pass pass_see = +struct rtl_opt_pass pass_see = { + { + RTL_PASS, "see", /* name */ gate_handle_see, /* gate */ rest_of_handle_see, /* execute */ @@ -3874,7 +3876,7 @@ struct tree_opt_pass pass_see = 0, /* todo_flags_start */ TODO_df_verify | TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 'u' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/stack-ptr-mod.c b/gcc/stack-ptr-mod.c index a5c85a5..e37fcc3 100644 --- a/gcc/stack-ptr-mod.c +++ b/gcc/stack-ptr-mod.c @@ -91,8 +91,10 @@ rest_of_handle_stack_ptr_mod (void) return 0; } -struct tree_opt_pass pass_stack_ptr_mod = +struct rtl_opt_pass pass_stack_ptr_mod = { + { + RTL_PASS, NULL, /* name */ NULL, /* gate */ rest_of_handle_stack_ptr_mod, /* execute */ @@ -104,6 +106,6 @@ struct tree_opt_pass pass_stack_ptr_mod = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2aacfe4..7365b81 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2008-03-19 Jan Hubicka <jh@suse.cz> + + * 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. + 2008-03-19 Richard Guenther <rguenther@suse.de> PR middle-end/35609 diff --git a/gcc/testsuite/gcc.dg/20050811-1.c b/gcc/testsuite/gcc.dg/20050811-1.c index cfc1816..a9f860b 100644 --- a/gcc/testsuite/gcc.dg/20050811-1.c +++ b/gcc/testsuite/gcc.dg/20050811-1.c @@ -1,6 +1,6 @@ -/* Test whether -dav doesn't crash. */ +/* Test whether -dv -fdump-rtl-all doesn't crash. */ /* { dg-do compile } */ -/* { dg-options "-O2 -dav" } */ +/* { dg-options "-O2 -dv -fdump-rtl-all" } */ int foo (void) { diff --git a/gcc/testsuite/gcc.dg/20050811-2.c b/gcc/testsuite/gcc.dg/20050811-2.c index 2f1d48b..ffd1f39 100644 --- a/gcc/testsuite/gcc.dg/20050811-2.c +++ b/gcc/testsuite/gcc.dg/20050811-2.c @@ -1,6 +1,6 @@ /* Test whether -dov doesn't crash. */ /* { dg-do compile } */ -/* { dg-options "-O2 -dov" } */ +/* { dg-options "-O2 -dv -fdump-rtl-postreload" } */ int foo (void) { diff --git a/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.c b/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.c index c003d5a..a30b4bc 100644 --- a/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.c +++ b/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.c @@ -13,4 +13,4 @@ int variable; /* { dg-final { scan-file-not cmdlne-dI-M.i "(^|\\n)#define foo bar($|\\n)" } } { dg-final { scan-file-not cmdlne-dI-M.i "variable" } } - { dg-final { scan-file cmdlne-dI-M.i "(^|\\n)cmdlne-dI-M.*:\[^\\n\]*cmdlne-dI-M.c" { xfail *-*-* } } } */ + { dg-final { scan-file cmdlne-dI-M.i "(^|\\n)cmdlne-dI-M.*:\[^\\n\]*cmdlne-dI-M.c" } } */ diff --git a/gcc/testsuite/gcc.dg/cpp/cmdlne-dM-M.c b/gcc/testsuite/gcc.dg/cpp/cmdlne-dM-M.c index fb21f40..193168e 100644 --- a/gcc/testsuite/gcc.dg/cpp/cmdlne-dM-M.c +++ b/gcc/testsuite/gcc.dg/cpp/cmdlne-dM-M.c @@ -12,4 +12,4 @@ int variable; /* { dg-final { scan-file cmdlne-dM-M.i "(^|\\n)#define foo bar($|\\n)" } } { dg-final { scan-file-not cmdlne-dM-M.i "variable" } } - { dg-final { scan-file cmdlne-dM-M.i "(^|\\n)cmdlne-dM-M\[^\\n\]*:\[^\\n\]*cmdlne-dM-M.c" { xfail *-*-* } } } */ + { dg-final { scan-file cmdlne-dM-M.i "(^|\\n)cmdlne-dM-M\[^\\n\]*:\[^\\n\]*cmdlne-dM-M.c"} } */ diff --git a/gcc/testsuite/gcc.dg/pr30957-1.c b/gcc/testsuite/gcc.dg/pr30957-1.c index 44cdf9d..65b98fa 100644 --- a/gcc/testsuite/gcc.dg/pr30957-1.c +++ b/gcc/testsuite/gcc.dg/pr30957-1.c @@ -6,7 +6,7 @@ they can not co-exist; also under -funsafe-math-optimizations, so we expect it to fail. */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-O2 -funroll-loops -funsafe-math-optimizations -fvariable-expansion-in-unroller -dL" } */ +/* { dg-options "-O2 -funroll-loops -funsafe-math-optimizations -fvariable-expansion-in-unroller -fdump-rtl-loop2_unroll" } */ extern void abort (void); extern void exit (int); diff --git a/gcc/testsuite/gcc.dg/sms-2.c b/gcc/testsuite/gcc.dg/sms-2.c index 918f6c8..04d0482 100644 --- a/gcc/testsuite/gcc.dg/sms-2.c +++ b/gcc/testsuite/gcc.dg/sms-2.c @@ -2,7 +2,7 @@ traversal of the loops after versioning. */ /* { dg-do compile } */ -/* { dg-options "-O2 -fmodulo-sched -dm" } */ +/* { dg-options "-O2 -fmodulo-sched -fdump-rtl-sms" } */ void diff --git a/gcc/testsuite/gcc.dg/var-expand1.c b/gcc/testsuite/gcc.dg/var-expand1.c index 707e346..3904407 100644 --- a/gcc/testsuite/gcc.dg/var-expand1.c +++ b/gcc/testsuite/gcc.dg/var-expand1.c @@ -2,7 +2,7 @@ /* We don't (and don't want to) perform this optimisation on soft-float targets, where each addition is a library call. */ /* { dg-require-effective-target hard_float } */ -/* { dg-options "-O2 -funroll-loops --fast-math -fvariable-expansion-in-unroller -dL" } */ +/* { dg-options "-O2 -funroll-loops --fast-math -fvariable-expansion-in-unroller -fdump-rtl-loop2_unroll" } */ extern void abort (void); diff --git a/gcc/testsuite/gcc.dg/var-expand3.c b/gcc/testsuite/gcc.dg/var-expand3.c index 6ccf59e..e82fb3c 100644 --- a/gcc/testsuite/gcc.dg/var-expand3.c +++ b/gcc/testsuite/gcc.dg/var-expand3.c @@ -1,5 +1,5 @@ /* { dg-do run { target { powerpc*-*-* && powerpc_altivec_ok } } }} */ -/* { dg-options "-O2 -funroll-loops -ffast-math -fvariable-expansion-in-unroller -maltivec -dL" } */ +/* { dg-options "-O2 -funroll-loops -ffast-math -fvariable-expansion-in-unroller -maltivec -fdump-rtl-loop2" } */ #include "altivec.h" extern void abort (void); diff --git a/gcc/toplev.c b/gcc/toplev.c index 12777aa..e6460ad 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1062,6 +1062,8 @@ decode_d_option (const char *arg) break; case 'D': /* These are handled by the preprocessor. */ case 'I': + case 'M': + case 'N': break; case 'H': setup_core_dumping(); diff --git a/gcc/tracer.c b/gcc/tracer.c index e8223820..1d5099a 100644 --- a/gcc/tracer.c +++ b/gcc/tracer.c @@ -378,8 +378,10 @@ gate_tracer (void) return (optimize > 0 && flag_tracer && flag_reorder_blocks); } -struct tree_opt_pass pass_tracer = +struct gimple_opt_pass pass_tracer = { + { + GIMPLE_PASS, "tracer", /* name */ gate_tracer, /* gate */ tracer, /* execute */ @@ -393,6 +395,6 @@ struct tree_opt_pass pass_tracer = 0, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa - | TODO_verify_ssa, /* todo_flags_finish */ - 'T' /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 3295664..c4b9bff 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -212,8 +212,10 @@ execute_build_cfg (void) return 0; } -struct tree_opt_pass pass_build_cfg = +struct gimple_opt_pass pass_build_cfg = { + { + GIMPLE_PASS, "cfg", /* name */ NULL, /* gate */ execute_build_cfg, /* execute */ @@ -225,8 +227,8 @@ struct tree_opt_pass pass_build_cfg = PROP_cfg, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_verify_stmts | TODO_cleanup_cfg, /* todo_flags_finish */ - 0 /* letter */ + TODO_verify_stmts | TODO_cleanup_cfg /* todo_flags_finish */ + } }; /* Search the CFG for any computed gotos. If found, factor them to a @@ -1933,8 +1935,10 @@ remove_useless_stmts (void) } -struct tree_opt_pass pass_remove_useless_stmts = +struct gimple_opt_pass pass_remove_useless_stmts = { + { + GIMPLE_PASS, "useless", /* name */ NULL, /* gate */ remove_useless_stmts, /* execute */ @@ -1946,8 +1950,8 @@ struct tree_opt_pass pass_remove_useless_stmts = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* Remove PHI nodes associated with basic block BB and all edges out of BB. */ @@ -6898,8 +6902,10 @@ split_critical_edges (void) return 0; } -struct tree_opt_pass pass_split_crit_edges = +struct gimple_opt_pass pass_split_crit_edges = { + { + GIMPLE_PASS, "crited", /* name */ NULL, /* gate */ split_critical_edges, /* execute */ @@ -6911,8 +6917,8 @@ struct tree_opt_pass pass_split_crit_edges = PROP_no_crit_edges, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -7068,8 +7074,10 @@ extract_true_false_edges_from_block (basic_block b, } } -struct tree_opt_pass pass_warn_function_return = +struct gimple_opt_pass pass_warn_function_return = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ execute_warn_function_return, /* execute */ @@ -7081,8 +7089,8 @@ struct tree_opt_pass pass_warn_function_return = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Emit noreturn warnings. */ @@ -7100,8 +7108,10 @@ execute_warn_function_noreturn (void) return 0; } -struct tree_opt_pass pass_warn_function_noreturn = +struct gimple_opt_pass pass_warn_function_noreturn = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ execute_warn_function_noreturn, /* execute */ @@ -7113,6 +7123,6 @@ struct tree_opt_pass pass_warn_function_noreturn = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c index aaaacd9..8970a9b 100644 --- a/gcc/tree-cfgcleanup.c +++ b/gcc/tree-cfgcleanup.c @@ -930,7 +930,10 @@ gate_merge_phi (void) return 1; } -struct tree_opt_pass pass_merge_phi = { +struct gimple_opt_pass pass_merge_phi = +{ + { + GIMPLE_PASS, "mergephi", /* name */ gate_merge_phi, /* gate */ merge_phi_nodes, /* execute */ @@ -943,6 +946,6 @@ struct tree_opt_pass pass_merge_phi = { 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_ggc_collect /* todo_flags_finish */ - | TODO_verify_ssa, - 0 /* letter */ + | TODO_verify_ssa + } }; diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index 10fa0ae..4703e78 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -1534,8 +1534,10 @@ tree_lower_complex (void) return 0; } -struct tree_opt_pass pass_lower_complex = +struct gimple_opt_pass pass_lower_complex = { + { + GIMPLE_PASS, "cplxlower", /* name */ 0, /* gate */ tree_lower_complex, /* execute */ @@ -1550,8 +1552,8 @@ struct tree_opt_pass pass_lower_complex = TODO_dump_func | TODO_ggc_collect | TODO_update_ssa - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; @@ -1582,8 +1584,10 @@ gate_no_optimization (void) return optimize == 0 || sorrycount || errorcount; } -struct tree_opt_pass pass_lower_complex_O0 = +struct gimple_opt_pass pass_lower_complex_O0 = { + { + GIMPLE_PASS, "cplxlower0", /* name */ gate_no_optimization, /* gate */ tree_lower_complex_O0, /* execute */ @@ -1597,5 +1601,5 @@ struct tree_opt_pass pass_lower_complex_O0 = 0, /* todo_flags_start */ TODO_dump_func | TODO_ggc_collect | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + } }; diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c index 3495816..23e3ba7 100644 --- a/gcc/tree-dfa.c +++ b/gcc/tree-dfa.c @@ -96,8 +96,10 @@ find_referenced_vars (void) return 0; } -struct tree_opt_pass pass_referenced_vars = +struct gimple_opt_pass pass_referenced_vars = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ find_referenced_vars, /* execute */ @@ -109,8 +111,8 @@ struct tree_opt_pass pass_referenced_vars = PROP_referenced_vars, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/tree-dump.c b/gcc/tree-dump.c index a377deb..bc01773 100644 --- a/gcc/tree-dump.c +++ b/gcc/tree-dump.c @@ -831,7 +831,7 @@ static const struct dump_option_value_info dump_options[] = unsigned int dump_register (const char *suffix, const char *swtch, const char *glob, - int flags, int letter) + int flags) { static int next_dump = FIRST_AUTO_NUMBERED_DUMP; int num = next_dump++; @@ -855,7 +855,6 @@ dump_register (const char *suffix, const char *swtch, const char *glob, extra_dump_files[this].glob = glob; extra_dump_files[this].flags = flags; extra_dump_files[this].num = num; - extra_dump_files[this].letter = letter; return this + TDI_end; } diff --git a/gcc/tree-dump.h b/gcc/tree-dump.h index 30efb10..72c2868 100644 --- a/gcc/tree-dump.h +++ b/gcc/tree-dump.h @@ -94,7 +94,7 @@ extern void debug_function (tree, int); extern int dump_flag (dump_info_p, int, const_tree); extern unsigned int dump_register (const char *, const char *, const char *, - int, int); + int); #endif /* ! GCC_TREE_DUMP_H */ diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 44d5a6d..06e4b5a 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -1725,8 +1725,10 @@ lower_eh_constructs (void) return 0; } -struct tree_opt_pass pass_lower_eh = +struct gimple_opt_pass pass_lower_eh = { + { + GIMPLE_PASS, "eh", /* name */ NULL, /* gate */ lower_eh_constructs, /* execute */ @@ -1738,8 +1740,8 @@ struct tree_opt_pass pass_lower_eh = PROP_gimple_leh, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -2244,8 +2246,10 @@ refactor_eh (void) return 0; } -struct tree_opt_pass pass_refactor_eh = +struct gimple_opt_pass pass_refactor_eh = { + { + GIMPLE_PASS, "ehopt", /* name */ NULL, /* gate */ refactor_eh, /* execute */ @@ -2257,6 +2261,6 @@ struct tree_opt_pass pass_refactor_eh = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index ec34929..5c285ef 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -1160,8 +1160,10 @@ gate_tree_if_conversion (void) return flag_tree_vectorize != 0; } -struct tree_opt_pass pass_if_conversion = +struct gimple_opt_pass pass_if_conversion = { + { + GIMPLE_PASS, "ifcvt", /* name */ gate_tree_if_conversion, /* gate */ main_tree_if_conversion, /* execute */ @@ -1173,7 +1175,7 @@ struct tree_opt_pass pass_if_conversion = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_loops | TODO_verify_stmts | TODO_verify_flow, + TODO_dump_func | TODO_verify_loops | TODO_verify_stmts | TODO_verify_flow /* todo_flags_finish */ - 0 /* letter */ + } }; diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index c55f736..efb315b 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -2298,8 +2298,10 @@ rewrite_into_ssa (void) } -struct tree_opt_pass pass_build_ssa = +struct gimple_opt_pass pass_build_ssa = { + { + GIMPLE_PASS, "ssa", /* name */ NULL, /* gate */ rewrite_into_ssa, /* execute */ @@ -2313,8 +2315,8 @@ struct tree_opt_pass pass_build_ssa = 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_ssa - | TODO_remove_unused_locals, /* todo_flags_finish */ - 0 /* letter */ + | TODO_remove_unused_locals /* todo_flags_finish */ + } }; diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c index 2d4a5d6..c380854 100644 --- a/gcc/tree-loop-distribution.c +++ b/gcc/tree-loop-distribution.c @@ -1155,8 +1155,10 @@ gate_tree_loop_distribution (void) return flag_tree_loop_distribution != 0; } -struct tree_opt_pass pass_loop_distribution = +struct gimple_opt_pass pass_loop_distribution = { + { + GIMPLE_PASS, "ldist", /* name */ gate_tree_loop_distribution, /* gate */ tree_loop_distribution, /* execute */ @@ -1168,6 +1170,6 @@ struct tree_opt_pass pass_loop_distribution = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_loops /* todo_flags_finish */ + } }; diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c index 190a3d3..cb0b449 100644 --- a/gcc/tree-mudflap.c +++ b/gcc/tree-mudflap.c @@ -1303,8 +1303,10 @@ gate_mudflap (void) return flag_mudflap != 0; } -struct tree_opt_pass pass_mudflap_1 = +struct gimple_opt_pass pass_mudflap_1 = { + { + GIMPLE_PASS, "mudflap1", /* name */ gate_mudflap, /* gate */ execute_mudflap_function_decls, /* execute */ @@ -1316,12 +1318,14 @@ struct tree_opt_pass pass_mudflap_1 = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_mudflap_2 = +struct gimple_opt_pass pass_mudflap_2 = { + { + GIMPLE_PASS, "mudflap2", /* name */ gate_mudflap, /* gate */ execute_mudflap_function_ops, /* execute */ @@ -1334,8 +1338,8 @@ struct tree_opt_pass pass_mudflap_2 = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_verify_flow | TODO_verify_stmts - | TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + | TODO_dump_func /* todo_flags_finish */ + } }; #include "gt-tree-mudflap.h" diff --git a/gcc/tree-nomudflap.c b/gcc/tree-nomudflap.c index a59b9da..8d1ae75 100644 --- a/gcc/tree-nomudflap.c +++ b/gcc/tree-nomudflap.c @@ -90,8 +90,10 @@ gate_mudflap (void) return flag_mudflap != 0; } -struct tree_opt_pass pass_mudflap_1 = +struct gimple_opt_pass pass_mudflap_1 = { + { + GIMPLE_PASS, "mudflap1", /* name */ gate_mudflap, /* gate */ NULL, /* execute */ @@ -103,12 +105,14 @@ struct tree_opt_pass pass_mudflap_1 = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_mudflap_2 = +struct gimple_opt_pass pass_mudflap_2 = { + { + GIMPLE_PASS, "mudflap2", /* name */ gate_mudflap, /* gate */ NULL, /* execute */ @@ -120,8 +124,8 @@ struct tree_opt_pass pass_mudflap_2 = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Instead of: diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c index ef5ee67..7330d28 100644 --- a/gcc/tree-nrv.c +++ b/gcc/tree-nrv.c @@ -221,8 +221,10 @@ tree_nrv (void) return 0; } -struct tree_opt_pass pass_nrv = +struct gimple_opt_pass pass_nrv = { + { + GIMPLE_PASS, "nrv", /* name */ NULL, /* gate */ tree_nrv, /* execute */ @@ -234,8 +236,8 @@ struct tree_opt_pass pass_nrv = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_ggc_collect /* todo_flags_finish */ + } }; /* Determine (pessimistically) whether DEST is available for NRV @@ -312,8 +314,10 @@ execute_return_slot_opt (void) return 0; } -struct tree_opt_pass pass_return_slot = +struct gimple_opt_pass pass_return_slot = { + { + GIMPLE_PASS, "retslot", /* name */ NULL, /* gate */ execute_return_slot_opt, /* execute */ @@ -325,6 +329,6 @@ struct tree_opt_pass pass_return_slot = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c index 371e3e5..bc99ae7 100644 --- a/gcc/tree-object-size.c +++ b/gcc/tree-object-size.c @@ -1063,8 +1063,10 @@ compute_object_sizes (void) return 0; } -struct tree_opt_pass pass_object_sizes = +struct gimple_opt_pass pass_object_sizes = { + { + GIMPLE_PASS, "objsz", /* name */ NULL, /* gate */ compute_object_sizes, /* execute */ @@ -1076,6 +1078,6 @@ struct tree_opt_pass pass_object_sizes = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index 544d75d..b6a9b93 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -61,8 +61,10 @@ gate_all_optimizations (void) && (!(errorcount || sorrycount) || gimple_in_ssa_p (cfun))); } -struct tree_opt_pass pass_all_optimizations = +struct gimple_opt_pass pass_all_optimizations = { + { + GIMPLE_PASS, NULL, /* name */ gate_all_optimizations, /* gate */ NULL, /* execute */ @@ -74,8 +76,8 @@ struct tree_opt_pass pass_all_optimizations = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Gate: execute, or not, all of the non-trivial optimizations. */ @@ -87,8 +89,10 @@ gate_all_early_local_passes (void) return (!errorcount && !sorrycount); } -struct tree_opt_pass pass_early_local_passes = +struct simple_ipa_opt_pass pass_early_local_passes = { + { + SIMPLE_IPA_PASS, "early_local_cleanups", /* name */ gate_all_early_local_passes, /* gate */ NULL, /* execute */ @@ -100,8 +104,8 @@ struct tree_opt_pass pass_early_local_passes = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_remove_functions, /* todo_flags_finish */ - 0 /* letter */ + TODO_remove_functions /* todo_flags_finish */ + } }; static unsigned int @@ -122,8 +126,10 @@ gate_all_early_optimizations (void) && !(errorcount || sorrycount)); } -struct tree_opt_pass pass_all_early_optimizations = +struct gimple_opt_pass pass_all_early_optimizations = { + { + GIMPLE_PASS, "early_optimizations", /* name */ gate_all_early_optimizations, /* gate */ execute_early_local_optimizations, /* execute */ @@ -135,8 +141,8 @@ struct tree_opt_pass pass_all_early_optimizations = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Pass: cleanup the CFG just before expanding trees to RTL. @@ -151,8 +157,10 @@ execute_cleanup_cfg_pre_ipa (void) return 0; } -struct tree_opt_pass pass_cleanup_cfg = +struct gimple_opt_pass pass_cleanup_cfg = { + { + GIMPLE_PASS, "cleanup_cfg", /* name */ NULL, /* gate */ execute_cleanup_cfg_pre_ipa, /* execute */ @@ -164,8 +172,8 @@ struct tree_opt_pass pass_cleanup_cfg = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; @@ -184,8 +192,10 @@ execute_cleanup_cfg_post_optimizing (void) return 0; } -struct tree_opt_pass pass_cleanup_cfg_post_optimizing = +struct gimple_opt_pass pass_cleanup_cfg_post_optimizing = { + { + GIMPLE_PASS, "final_cleanup", /* name */ NULL, /* gate */ execute_cleanup_cfg_post_optimizing, /* execute */ @@ -197,8 +207,8 @@ struct tree_opt_pass pass_cleanup_cfg_post_optimizing = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* Pass: do the actions required to finish with tree-ssa optimization @@ -216,8 +226,10 @@ execute_free_datastructures (void) return 0; } -struct tree_opt_pass pass_free_datastructures = +struct gimple_opt_pass pass_free_datastructures = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ execute_free_datastructures, /* execute */ @@ -229,8 +241,8 @@ struct tree_opt_pass pass_free_datastructures = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Pass: free cfg annotations. */ @@ -243,8 +255,10 @@ execute_free_cfg_annotations (void) return 0; } -struct tree_opt_pass pass_free_cfg_annotations = +struct gimple_opt_pass pass_free_cfg_annotations = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ execute_free_cfg_annotations, /* execute */ @@ -256,8 +270,8 @@ struct tree_opt_pass pass_free_cfg_annotations = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Pass: fixup_cfg. IPA passes, compilation of earlier functions or inlining @@ -330,8 +344,10 @@ gate_init_datastructures (void) return (optimize >= 1); } -struct tree_opt_pass pass_init_datastructures = +struct gimple_opt_pass pass_init_datastructures = { + { + GIMPLE_PASS, NULL, /* name */ gate_init_datastructures, /* gate */ execute_init_datastructures, /* execute */ @@ -343,8 +359,8 @@ struct tree_opt_pass pass_init_datastructures = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; void @@ -358,7 +374,7 @@ tree_lowering_passes (tree fn) bitmap_obstack_initialize (NULL); execute_pass_list (all_lowering_passes); if (optimize && cgraph_global_info_ready) - execute_pass_list (pass_early_local_passes.sub); + execute_pass_list (pass_early_local_passes.pass.sub); free_dominance_info (CDI_POST_DOMINATORS); free_dominance_info (CDI_DOMINATORS); compact_blocks (); diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c index be8a459..12ce1b9 100644 --- a/gcc/tree-outof-ssa.c +++ b/gcc/tree-outof-ssa.c @@ -1466,8 +1466,10 @@ rewrite_out_of_ssa (void) /* Define the parameters of the out of SSA pass. */ -struct tree_opt_pass pass_del_ssa = +struct gimple_opt_pass pass_del_ssa = { + { + GIMPLE_PASS, "optimized", /* name */ NULL, /* gate */ rewrite_out_of_ssa, /* execute */ @@ -1483,6 +1485,6 @@ struct tree_opt_pass pass_del_ssa = | TODO_verify_stmts, /* todo_flags_start */ TODO_dump_func | TODO_ggc_collect - | TODO_remove_unused_locals, /* todo_flags_finish */ - 0 /* letter */ + | TODO_remove_unused_locals /* todo_flags_finish */ + } }; 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); diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c index 57c9f5c..7a70cef 100644 --- a/gcc/tree-profile.c +++ b/gcc/tree-profile.c @@ -443,8 +443,10 @@ tree_profiling (void) return 0; } -struct tree_opt_pass pass_tree_profile = +struct gimple_opt_pass pass_tree_profile = { + { + GIMPLE_PASS, "tree_profile", /* name */ do_tree_profiling, /* gate */ tree_profiling, /* execute */ @@ -456,8 +458,8 @@ struct tree_opt_pass pass_tree_profile = PROP_gimple_leh | PROP_cfg, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_verify_stmts | TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_verify_stmts | TODO_dump_func /* todo_flags_finish */ + } }; struct profile_hooks tree_profile_hooks = diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index 45142e8..752f87d 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -3680,8 +3680,10 @@ gate_sra (void) return flag_tree_sra != 0; } -struct tree_opt_pass pass_sra_early = +struct gimple_opt_pass pass_sra_early = { + { + GIMPLE_PASS, "esra", /* name */ gate_sra, /* gate */ tree_sra_early, /* execute */ @@ -3696,12 +3698,14 @@ struct tree_opt_pass pass_sra_early = TODO_dump_func | TODO_update_ssa | TODO_ggc_collect - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_sra = +struct gimple_opt_pass pass_sra = { + { + GIMPLE_PASS, "sra", /* name */ gate_sra, /* gate */ tree_sra, /* execute */ @@ -3716,6 +3720,6 @@ struct tree_opt_pass pass_sra = TODO_dump_func | TODO_update_ssa | TODO_ggc_collect - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c index 7ab2f6b..a9ae29f 100644 --- a/gcc/tree-ssa-alias.c +++ b/gcc/tree-ssa-alias.c @@ -4205,8 +4205,10 @@ gate_structure_vars (void) return flag_tree_salias != 0; } -struct tree_opt_pass pass_create_structure_vars = +struct gimple_opt_pass pass_create_structure_vars = { + { + GIMPLE_PASS, "salias", /* name */ gate_structure_vars, /* gate */ create_structure_vars, /* execute */ @@ -4218,8 +4220,8 @@ struct tree_opt_pass pass_create_structure_vars = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* Reset the call_clobbered flags on our referenced vars. In @@ -4236,8 +4238,10 @@ reset_cc_flags (void) return 0; } -struct tree_opt_pass pass_reset_cc_flags = +struct gimple_opt_pass pass_reset_cc_flags = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ reset_cc_flags, /* execute */ @@ -4249,8 +4253,8 @@ struct tree_opt_pass pass_reset_cc_flags = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; static bool @@ -4260,8 +4264,10 @@ gate_build_alias (void) } -struct tree_opt_pass pass_build_alias = +struct gimple_opt_pass pass_build_alias = { + { + GIMPLE_PASS, "build_alias", /* name */ gate_build_alias, /* gate */ NULL, /* execute */ @@ -4273,6 +4279,6 @@ struct tree_opt_pass pass_build_alias = PROP_alias, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_rebuild_alias, /* todo_flags_finish */ - 0 /* letter */ + TODO_rebuild_alias /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 7e51926..2a82c04 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -1495,8 +1495,10 @@ gate_ccp (void) } -struct tree_opt_pass pass_ccp = +struct gimple_opt_pass pass_ccp = { + { + GIMPLE_PASS, "ccp", /* name */ gate_ccp, /* gate */ do_ssa_ccp, /* execute */ @@ -1509,8 +1511,8 @@ struct tree_opt_pass pass_ccp = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_ssa - | TODO_verify_stmts | TODO_ggc_collect,/* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts | TODO_ggc_collect/* todo_flags_finish */ + } }; @@ -1531,8 +1533,10 @@ gate_store_ccp (void) } -struct tree_opt_pass pass_store_ccp = +struct gimple_opt_pass pass_store_ccp = { + { + GIMPLE_PASS, "store_ccp", /* name */ gate_store_ccp, /* gate */ do_ssa_store_ccp, /* execute */ @@ -1545,8 +1549,8 @@ struct tree_opt_pass pass_store_ccp = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_ssa - | TODO_verify_stmts | TODO_ggc_collect,/* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts | TODO_ggc_collect/* todo_flags_finish */ + } }; /* Given a constant value VAL for bitfield FIELD, and a destination @@ -3026,8 +3030,10 @@ execute_fold_all_builtins (void) } -struct tree_opt_pass pass_fold_builtins = +struct gimple_opt_pass pass_fold_builtins = { + { + GIMPLE_PASS, "fab", /* name */ NULL, /* gate */ execute_fold_all_builtins, /* execute */ @@ -3041,6 +3047,6 @@ struct tree_opt_pass pass_fold_builtins = 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_ssa - | TODO_update_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_update_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c index 2cd30c9..bc8a874 100644 --- a/gcc/tree-ssa-copy.c +++ b/gcc/tree-ssa-copy.c @@ -1062,8 +1062,10 @@ gate_copy_prop (void) return flag_tree_copy_prop != 0; } -struct tree_opt_pass pass_copy_prop = +struct gimple_opt_pass pass_copy_prop = { + { + GIMPLE_PASS, "copyprop", /* name */ gate_copy_prop, /* gate */ execute_copy_prop, /* execute */ @@ -1079,7 +1081,7 @@ struct tree_opt_pass pass_copy_prop = | TODO_dump_func | TODO_ggc_collect | TODO_verify_ssa - | TODO_update_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_update_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c index d701d43..46b3314 100644 --- a/gcc/tree-ssa-copyrename.c +++ b/gcc/tree-ssa-copyrename.c @@ -389,8 +389,10 @@ gate_copyrename (void) return flag_tree_copyrename != 0; } -struct tree_opt_pass pass_rename_ssa_copies = -{ +struct gimple_opt_pass pass_rename_ssa_copies = +{ + { + GIMPLE_PASS, "copyrename", /* name */ gate_copyrename, /* gate */ rename_ssa_copies, /* execute */ @@ -402,7 +404,7 @@ struct tree_opt_pass pass_rename_ssa_copies = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c index 640c1f3..95457eb 100644 --- a/gcc/tree-ssa-dce.c +++ b/gcc/tree-ssa-dce.c @@ -901,8 +901,10 @@ gate_dce (void) return flag_tree_dce != 0; } -struct tree_opt_pass pass_dce = +struct gimple_opt_pass pass_dce = { + { + GIMPLE_PASS, "dce", /* name */ gate_dce, /* gate */ tree_ssa_dce, /* execute */ @@ -914,12 +916,14 @@ struct tree_opt_pass pass_dce = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_dce_loop = +struct gimple_opt_pass pass_dce_loop = { + { + GIMPLE_PASS, "dceloop", /* name */ gate_dce, /* gate */ tree_ssa_dce_loop, /* execute */ @@ -931,12 +935,14 @@ struct tree_opt_pass pass_dce_loop = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_cd_dce = +struct gimple_opt_pass pass_cd_dce = { + { + GIMPLE_PASS, "cddce", /* name */ gate_dce, /* gate */ tree_ssa_cd_dce, /* execute */ @@ -949,6 +955,6 @@ struct tree_opt_pass pass_cd_dce = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_ssa - | TODO_verify_flow, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_flow /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index bc9809e..4d95261 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -367,8 +367,10 @@ gate_dominator (void) return flag_tree_dom != 0; } -struct tree_opt_pass pass_dominator = +struct gimple_opt_pass pass_dominator = { + { + GIMPLE_PASS, "dom", /* name */ gate_dominator, /* gate */ tree_ssa_dominator_optimize, /* execute */ @@ -383,8 +385,8 @@ struct tree_opt_pass pass_dominator = TODO_dump_func | TODO_update_ssa | TODO_cleanup_cfg - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; @@ -2533,8 +2535,10 @@ eliminate_degenerate_phis (void) return 0; } -struct tree_opt_pass pass_phi_only_cprop = +struct gimple_opt_pass pass_phi_only_cprop = { + { + GIMPLE_PASS, "phicprop", /* name */ gate_dominator, /* gate */ eliminate_degenerate_phis, /* execute */ @@ -2551,6 +2555,6 @@ struct tree_opt_pass pass_phi_only_cprop = | TODO_ggc_collect | TODO_verify_ssa | TODO_verify_stmts - | TODO_update_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_update_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c index f2ec9a5..8c96004 100644 --- a/gcc/tree-ssa-dse.c +++ b/gcc/tree-ssa-dse.c @@ -632,7 +632,10 @@ gate_dse (void) return flag_tree_dse != 0; } -struct tree_opt_pass pass_dse = { +struct gimple_opt_pass pass_dse = +{ + { + GIMPLE_PASS, "dse", /* name */ gate_dse, /* gate */ tree_ssa_dse, /* execute */ @@ -648,8 +651,8 @@ struct tree_opt_pass pass_dse = { 0, /* todo_flags_start */ TODO_dump_func | TODO_ggc_collect - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; /* A very simple dead store pass eliminating write only local variables. @@ -769,8 +772,10 @@ execute_simple_dse (void) return todo; } -struct tree_opt_pass pass_simple_dse = +struct gimple_opt_pass pass_simple_dse = { + { + GIMPLE_PASS, "sdse", /* name */ NULL, /* gate */ execute_simple_dse, /* execute */ @@ -782,6 +787,6 @@ struct tree_opt_pass pass_simple_dse = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index 1766869..84553fb 100644 --- a/gcc/tree-ssa-forwprop.c +++ b/gcc/tree-ssa-forwprop.c @@ -1081,7 +1081,10 @@ gate_forwprop (void) return 1; } -struct tree_opt_pass pass_forwprop = { +struct gimple_opt_pass pass_forwprop = +{ + { + GIMPLE_PASS, "forwprop", /* name */ gate_forwprop, /* gate */ tree_ssa_forward_propagate_single_use_vars, /* execute */ @@ -1096,7 +1099,7 @@ struct tree_opt_pass pass_forwprop = { TODO_dump_func | TODO_ggc_collect | TODO_update_ssa - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c index eef6f22..cec5868 100644 --- a/gcc/tree-ssa-ifcombine.c +++ b/gcc/tree-ssa-ifcombine.c @@ -605,7 +605,10 @@ gate_ifcombine (void) return 1; } -struct tree_opt_pass pass_tree_ifcombine = { +struct gimple_opt_pass pass_tree_ifcombine = +{ + { + GIMPLE_PASS, "ifcombine", /* name */ gate_ifcombine, /* gate */ tree_ssa_ifcombine, /* execute */ @@ -620,6 +623,6 @@ struct tree_opt_pass pass_tree_ifcombine = { TODO_dump_func | TODO_ggc_collect | TODO_update_ssa - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c index ff62c68..47b93f8 100644 --- a/gcc/tree-ssa-loop-ch.c +++ b/gcc/tree-ssa-loop-ch.c @@ -253,8 +253,10 @@ gate_ch (void) return flag_tree_ch != 0; } -struct tree_opt_pass pass_ch = +struct gimple_opt_pass pass_ch = { + { + GIMPLE_PASS, "ch", /* name */ gate_ch, /* gate */ copy_loop_headers, /* execute */ @@ -267,6 +269,6 @@ struct tree_opt_pass pass_ch = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_cleanup_cfg | TODO_dump_func - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c index 3361834..639fb10 100644 --- a/gcc/tree-ssa-loop.c +++ b/gcc/tree-ssa-loop.c @@ -55,8 +55,10 @@ gate_tree_loop (void) return flag_tree_loop_optimize != 0; } -struct tree_opt_pass pass_tree_loop = +struct gimple_opt_pass pass_tree_loop = { + { + GIMPLE_PASS, "loop", /* name */ gate_tree_loop, /* gate */ NULL, /* execute */ @@ -68,8 +70,8 @@ struct tree_opt_pass pass_tree_loop = 0, /* properties_provided */ 0, /* properties_destroyed */ TODO_ggc_collect, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa | TODO_ggc_collect /* todo_flags_finish */ + } }; /* Loop optimizer initialization. */ @@ -85,8 +87,10 @@ tree_ssa_loop_init (void) return 0; } -struct tree_opt_pass pass_tree_loop_init = +struct gimple_opt_pass pass_tree_loop_init = { + { + GIMPLE_PASS, "loopinit", /* name */ NULL, /* gate */ tree_ssa_loop_init, /* execute */ @@ -98,8 +102,8 @@ struct tree_opt_pass pass_tree_loop_init = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_loops /* todo_flags_finish */ + } }; /* Loop invariant motion pass. */ @@ -120,8 +124,10 @@ gate_tree_ssa_loop_im (void) return flag_tree_loop_im != 0; } -struct tree_opt_pass pass_lim = +struct gimple_opt_pass pass_lim = { + { + GIMPLE_PASS, "lim", /* name */ gate_tree_ssa_loop_im, /* gate */ tree_ssa_loop_im, /* execute */ @@ -133,8 +139,8 @@ struct tree_opt_pass pass_lim = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_loops /* todo_flags_finish */ + } }; /* Loop unswitching pass. */ @@ -154,8 +160,10 @@ gate_tree_ssa_loop_unswitch (void) return flag_unswitch_loops != 0; } -struct tree_opt_pass pass_tree_unswitch = +struct gimple_opt_pass pass_tree_unswitch = { + { + GIMPLE_PASS, "unswitch", /* name */ gate_tree_ssa_loop_unswitch, /* gate */ tree_ssa_loop_unswitch, /* execute */ @@ -168,8 +176,8 @@ struct tree_opt_pass pass_tree_unswitch = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_ggc_collect | TODO_dump_func - | TODO_verify_loops, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_loops /* todo_flags_finish */ + } }; /* Predictive commoning. */ @@ -190,8 +198,10 @@ gate_tree_predictive_commoning (void) return flag_predictive_commoning != 0; } -struct tree_opt_pass pass_predcom = +struct gimple_opt_pass pass_predcom = { + { + GIMPLE_PASS, "pcom", /* name */ gate_tree_predictive_commoning, /* gate */ run_tree_predictive_commoning, /* execute */ @@ -204,8 +214,8 @@ struct tree_opt_pass pass_predcom = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_loops - | TODO_update_ssa_only_virtuals, /* todo_flags_finish */ - 0 /* letter */ + | TODO_update_ssa_only_virtuals /* todo_flags_finish */ + } }; /* Loop autovectorization. */ @@ -222,8 +232,10 @@ gate_tree_vectorize (void) return flag_tree_vectorize && number_of_loops () > 1; } -struct tree_opt_pass pass_vectorize = +struct gimple_opt_pass pass_vectorize = { + { + GIMPLE_PASS, "vect", /* name */ gate_tree_vectorize, /* gate */ tree_vectorize, /* execute */ @@ -236,8 +248,8 @@ struct tree_opt_pass pass_vectorize = 0, /* properties_destroyed */ TODO_verify_loops, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa - | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + | TODO_ggc_collect /* todo_flags_finish */ + } }; /* Loop nest optimizations. */ @@ -258,8 +270,10 @@ gate_tree_linear_transform (void) return flag_tree_loop_linear != 0; } -struct tree_opt_pass pass_linear_transform = +struct gimple_opt_pass pass_linear_transform = { + { + GIMPLE_PASS, "ltrans", /* name */ gate_tree_linear_transform, /* gate */ tree_linear_transform, /* execute */ @@ -273,8 +287,8 @@ struct tree_opt_pass pass_linear_transform = 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_loops | TODO_update_ssa_only_virtuals - | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + | TODO_ggc_collect /* todo_flags_finish */ + } }; /* Check the correctness of the data dependence analyzers. */ @@ -295,8 +309,10 @@ gate_check_data_deps (void) return flag_check_data_deps != 0; } -struct tree_opt_pass pass_check_data_deps = +struct gimple_opt_pass pass_check_data_deps = { + { + GIMPLE_PASS, "ckdd", /* name */ gate_check_data_deps, /* gate */ check_data_deps, /* execute */ @@ -308,8 +324,8 @@ struct tree_opt_pass pass_check_data_deps = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; /* Canonical induction variable creation pass. */ @@ -329,8 +345,10 @@ gate_tree_ssa_loop_ivcanon (void) return flag_tree_loop_ivcanon != 0; } -struct tree_opt_pass pass_iv_canon = +struct gimple_opt_pass pass_iv_canon = { + { + GIMPLE_PASS, "ivcanon", /* name */ gate_tree_ssa_loop_ivcanon, /* gate */ tree_ssa_loop_ivcanon, /* execute */ @@ -342,8 +360,8 @@ struct tree_opt_pass pass_iv_canon = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_loops /* todo_flags_finish */ + } }; /* Propagation of constants using scev. */ @@ -354,8 +372,10 @@ gate_scev_const_prop (void) return flag_tree_scev_cprop; } -struct tree_opt_pass pass_scev_cprop = +struct gimple_opt_pass pass_scev_cprop = { + { + GIMPLE_PASS, "sccp", /* name */ gate_scev_const_prop, /* gate */ scev_const_prop, /* execute */ @@ -368,9 +388,9 @@ struct tree_opt_pass pass_scev_cprop = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_cleanup_cfg - | TODO_update_ssa_only_virtuals, + | TODO_update_ssa_only_virtuals /* todo_flags_finish */ - 0 /* letter */ + } }; /* Remove empty loops. */ @@ -384,8 +404,10 @@ tree_ssa_empty_loop (void) return remove_empty_loops (); } -struct tree_opt_pass pass_empty_loop = +struct gimple_opt_pass pass_empty_loop = { + { + GIMPLE_PASS, "empty", /* name */ NULL, /* gate */ tree_ssa_empty_loop, /* execute */ @@ -398,8 +420,8 @@ struct tree_opt_pass pass_empty_loop = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_loops - | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + | TODO_ggc_collect /* todo_flags_finish */ + } }; /* Record bounds on numbers of iterations of loops. */ @@ -415,8 +437,10 @@ tree_ssa_loop_bounds (void) return 0; } -struct tree_opt_pass pass_record_bounds = +struct gimple_opt_pass pass_record_bounds = { + { + GIMPLE_PASS, NULL, /* name */ NULL, /* gate */ tree_ssa_loop_bounds, /* execute */ @@ -428,8 +452,8 @@ struct tree_opt_pass pass_record_bounds = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Complete unrolling of loops. */ @@ -451,8 +475,10 @@ gate_tree_complete_unroll (void) return true; } -struct tree_opt_pass pass_complete_unroll = +struct gimple_opt_pass pass_complete_unroll = { + { + GIMPLE_PASS, "cunroll", /* name */ gate_tree_complete_unroll, /* gate */ tree_complete_unroll, /* execute */ @@ -465,8 +491,8 @@ struct tree_opt_pass pass_complete_unroll = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_loops - | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + | TODO_ggc_collect /* todo_flags_finish */ + } }; /* Parallelization. */ @@ -488,8 +514,10 @@ tree_parallelize_loops (void) return 0; } -struct tree_opt_pass pass_parallelize_loops = +struct gimple_opt_pass pass_parallelize_loops = { + { + GIMPLE_PASS, "parloops", /* name */ gate_tree_parallelize_loops, /* gate */ tree_parallelize_loops, /* execute */ @@ -501,8 +529,8 @@ struct tree_opt_pass pass_parallelize_loops = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_loops /* todo_flags_finish */ + } }; /* Prefetching. */ @@ -522,8 +550,10 @@ gate_tree_ssa_loop_prefetch (void) return flag_prefetch_loop_arrays != 0; } -struct tree_opt_pass pass_loop_prefetch = +struct gimple_opt_pass pass_loop_prefetch = { + { + GIMPLE_PASS, "aprefetch", /* name */ gate_tree_ssa_loop_prefetch, /* gate */ tree_ssa_loop_prefetch, /* execute */ @@ -535,8 +565,8 @@ struct tree_opt_pass pass_loop_prefetch = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_loops /* todo_flags_finish */ + } }; /* Induction variable optimizations. */ @@ -557,8 +587,10 @@ gate_tree_ssa_loop_ivopts (void) return flag_ivopts != 0; } -struct tree_opt_pass pass_iv_optimize = +struct gimple_opt_pass pass_iv_optimize = { + { + GIMPLE_PASS, "ivopts", /* name */ gate_tree_ssa_loop_ivopts, /* gate */ tree_ssa_loop_ivopts, /* execute */ @@ -571,8 +603,8 @@ struct tree_opt_pass pass_iv_optimize = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_verify_loops - | TODO_update_ssa | TODO_ggc_collect, /* todo_flags_finish */ - 0 /* letter */ + | TODO_update_ssa | TODO_ggc_collect /* todo_flags_finish */ + } }; /* Loop optimizer finalization. */ @@ -586,8 +618,10 @@ tree_ssa_loop_done (void) return 0; } -struct tree_opt_pass pass_tree_loop_done = +struct gimple_opt_pass pass_tree_loop_done = { + { + GIMPLE_PASS, "loopdone", /* name */ NULL, /* gate */ tree_ssa_loop_done, /* execute */ @@ -599,6 +633,6 @@ struct tree_opt_pass pass_tree_loop_done = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_cleanup_cfg | TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_cleanup_cfg | TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index 087cca2..49fd170 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -555,8 +555,10 @@ execute_cse_reciprocals (void) return 0; } -struct tree_opt_pass pass_cse_reciprocals = +struct gimple_opt_pass pass_cse_reciprocals = { + { + GIMPLE_PASS, "recip", /* name */ gate_cse_reciprocals, /* gate */ execute_cse_reciprocals, /* execute */ @@ -569,8 +571,8 @@ struct tree_opt_pass pass_cse_reciprocals = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa | TODO_verify_ssa - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; /* Records an occurrence at statement USE_STMT in the vector of trees @@ -761,8 +763,10 @@ gate_cse_sincos (void) && optimize; } -struct tree_opt_pass pass_cse_sincos = +struct gimple_opt_pass pass_cse_sincos = { + { + GIMPLE_PASS, "sincos", /* name */ gate_cse_sincos, /* gate */ execute_cse_sincos, /* execute */ @@ -775,8 +779,8 @@ struct tree_opt_pass pass_cse_sincos = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa | TODO_verify_ssa - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; /* Find all expressions in the form of sqrt(a/b) and @@ -853,8 +857,10 @@ gate_convert_to_rsqrt (void) return flag_unsafe_math_optimizations && optimize; } -struct tree_opt_pass pass_convert_to_rsqrt = +struct gimple_opt_pass pass_convert_to_rsqrt = { + { + GIMPLE_PASS, "rsqrt", /* name */ gate_convert_to_rsqrt, /* gate */ execute_convert_to_rsqrt, /* execute */ @@ -867,6 +873,6 @@ struct tree_opt_pass pass_convert_to_rsqrt = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa | TODO_verify_ssa - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c index e51bac6..bfe4fed 100644 --- a/gcc/tree-ssa-phiopt.c +++ b/gcc/tree-ssa-phiopt.c @@ -1352,8 +1352,10 @@ gate_phiopt (void) return 1; } -struct tree_opt_pass pass_phiopt = +struct gimple_opt_pass pass_phiopt = { + { + GIMPLE_PASS, "phiopt", /* name */ gate_phiopt, /* gate */ tree_ssa_phiopt, /* execute */ @@ -1369,8 +1371,8 @@ struct tree_opt_pass pass_phiopt = | TODO_ggc_collect | TODO_verify_ssa | TODO_verify_flow - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; static bool @@ -1379,8 +1381,10 @@ gate_cselim (void) return flag_tree_cselim; } -struct tree_opt_pass pass_cselim = +struct gimple_opt_pass pass_cselim = { + { + GIMPLE_PASS, "cselim", /* name */ gate_cselim, /* gate */ tree_ssa_cs_elim, /* execute */ @@ -1396,6 +1400,6 @@ struct tree_opt_pass pass_cselim = | TODO_ggc_collect | TODO_verify_ssa | TODO_verify_flow - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-phiprop.c b/gcc/tree-ssa-phiprop.c index 273ed2f..2621dae 100644 --- a/gcc/tree-ssa-phiprop.c +++ b/gcc/tree-ssa-phiprop.c @@ -368,7 +368,10 @@ gate_phiprop (void) return 1; } -struct tree_opt_pass pass_phiprop = { +struct gimple_opt_pass pass_phiprop = +{ + { + GIMPLE_PASS, "phiprop", /* name */ gate_phiprop, /* gate */ tree_ssa_phiprop, /* execute */ @@ -383,6 +386,6 @@ struct tree_opt_pass pass_phiprop = { TODO_dump_func | TODO_ggc_collect | TODO_update_ssa - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index ad628a3..e6a931d 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -4057,8 +4057,10 @@ gate_pre (void) return flag_tree_pre != 0; } -struct tree_opt_pass pass_pre = +struct gimple_opt_pass pass_pre = { + { + GIMPLE_PASS, "pre", /* name */ gate_pre, /* gate */ do_pre, /* execute */ @@ -4072,8 +4074,8 @@ struct tree_opt_pass pass_pre = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_update_ssa_only_virtuals | TODO_dump_func | TODO_ggc_collect - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; @@ -4091,8 +4093,10 @@ gate_fre (void) return flag_tree_fre != 0; } -struct tree_opt_pass pass_fre = +struct gimple_opt_pass pass_fre = { + { + GIMPLE_PASS, "fre", /* name */ gate_fre, /* gate */ execute_fre, /* execute */ @@ -4104,6 +4108,6 @@ struct tree_opt_pass pass_fre = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_ggc_collect | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_ggc_collect | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c index 6e6f5f7..19e1039 100644 --- a/gcc/tree-ssa-reassoc.c +++ b/gcc/tree-ssa-reassoc.c @@ -1528,8 +1528,10 @@ gate_tree_ssa_reassoc (void) return flag_tree_reassoc != 0; } -struct tree_opt_pass pass_reassoc = +struct gimple_opt_pass pass_reassoc = { + { + GIMPLE_PASS, "reassoc", /* name */ gate_tree_ssa_reassoc, /* gate */ execute_reassoc, /* execute */ @@ -1541,6 +1543,6 @@ struct tree_opt_pass pass_reassoc = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_ggc_collect | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_ggc_collect | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c index cd57baa..40a3640 100644 --- a/gcc/tree-ssa-sink.c +++ b/gcc/tree-ssa-sink.c @@ -568,8 +568,10 @@ gate_sink (void) return flag_tree_sink != 0; } -struct tree_opt_pass pass_sink_code = +struct gimple_opt_pass pass_sink_code = { + { + GIMPLE_PASS, "sink", /* name */ gate_sink, /* gate */ do_sink, /* execute */ @@ -585,6 +587,6 @@ struct tree_opt_pass pass_sink_code = TODO_update_ssa | TODO_dump_func | TODO_ggc_collect - | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c index 31ab38f..037f223 100644 --- a/gcc/tree-ssa-structalias.c +++ b/gcc/tree-ssa-structalias.c @@ -5630,8 +5630,10 @@ ipa_pta_execute (void) return 0; } -struct tree_opt_pass pass_ipa_pta = +struct simple_ipa_opt_pass pass_ipa_pta = { + { + SIMPLE_IPA_PASS, "pta", /* name */ gate_ipa_pta, /* gate */ ipa_pta_execute, /* execute */ @@ -5643,8 +5645,8 @@ struct tree_opt_pass pass_ipa_pta = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_update_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_update_ssa /* todo_flags_finish */ + } }; /* Initialize the heapvar for statement mapping. */ diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c index 0b6ab7f..0d19c2d 100644 --- a/gcc/tree-ssa-uncprop.c +++ b/gcc/tree-ssa-uncprop.c @@ -606,8 +606,10 @@ gate_uncprop (void) return flag_tree_dom != 0; } -struct tree_opt_pass pass_uncprop = +struct gimple_opt_pass pass_uncprop = { + { + GIMPLE_PASS, "uncprop", /* name */ gate_uncprop, /* gate */ tree_ssa_uncprop, /* execute */ @@ -619,6 +621,6 @@ struct tree_opt_pass pass_uncprop = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 5a67aa8..128b4e8 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1530,8 +1530,10 @@ gate_warn_uninitialized (void) return warn_uninitialized != 0; } -struct tree_opt_pass pass_early_warn_uninitialized = +struct gimple_opt_pass pass_early_warn_uninitialized = { + { + GIMPLE_PASS, NULL, /* name */ gate_warn_uninitialized, /* gate */ execute_early_warn_uninitialized, /* execute */ @@ -1543,12 +1545,14 @@ struct tree_opt_pass pass_early_warn_uninitialized = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_late_warn_uninitialized = +struct gimple_opt_pass pass_late_warn_uninitialized = { + { + GIMPLE_PASS, NULL, /* name */ gate_warn_uninitialized, /* gate */ execute_late_warn_uninitialized, /* execute */ @@ -1560,8 +1564,8 @@ struct tree_opt_pass pass_late_warn_uninitialized = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; /* Compute TREE_ADDRESSABLE for local variables. */ @@ -1643,8 +1647,10 @@ execute_update_addresses_taken (void) return 0; } -struct tree_opt_pass pass_update_address_taken = +struct gimple_opt_pass pass_update_address_taken = { + { + GIMPLE_PASS, "addressables", /* name */ NULL, /* gate */ execute_update_addresses_taken, /* execute */ @@ -1656,6 +1662,6 @@ struct tree_opt_pass pass_update_address_taken = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_update_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_update_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c index 956dd00..d418bc1 100644 --- a/gcc/tree-ssanames.c +++ b/gcc/tree-ssanames.c @@ -343,8 +343,10 @@ release_dead_ssa_names (void) return 0; } -struct tree_opt_pass pass_release_ssa_names = +struct gimple_opt_pass pass_release_ssa_names = { + { + GIMPLE_PASS, "release_ssa", /* name */ NULL, /* gate */ release_dead_ssa_names, /* execute */ @@ -356,6 +358,6 @@ struct tree_opt_pass pass_release_ssa_names = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c index 8a27529..54693d1 100644 --- a/gcc/tree-stdarg.c +++ b/gcc/tree-stdarg.c @@ -904,8 +904,10 @@ finish: } -struct tree_opt_pass pass_stdarg = +struct gimple_opt_pass pass_stdarg = { + { + GIMPLE_PASS, "stdarg", /* name */ gate_optimize_stdarg, /* gate */ execute_optimize_stdarg, /* execute */ @@ -917,6 +919,6 @@ struct tree_opt_pass pass_stdarg = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c index bd3da88..a4430ec 100644 --- a/gcc/tree-tailcall.c +++ b/gcc/tree-tailcall.c @@ -1017,8 +1017,10 @@ execute_tail_calls (void) return tree_optimize_tail_calls_1 (true); } -struct tree_opt_pass pass_tail_recursion = +struct gimple_opt_pass pass_tail_recursion = { + { + GIMPLE_PASS, "tailr", /* name */ gate_tail_calls, /* gate */ execute_tail_recursion, /* execute */ @@ -1030,12 +1032,14 @@ struct tree_opt_pass pass_tail_recursion = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_tail_calls = +struct gimple_opt_pass pass_tail_calls = { + { + GIMPLE_PASS, "tailc", /* name */ gate_tail_calls, /* gate */ execute_tail_calls, /* execute */ @@ -1047,6 +1051,6 @@ struct tree_opt_pass pass_tail_calls = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ - 0 /* letter */ + TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index 76a51e0..a4026d6 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -527,8 +527,10 @@ expand_vector_operations (void) return 0; } -struct tree_opt_pass pass_lower_vector = +struct gimple_opt_pass pass_lower_vector = { + { + GIMPLE_PASS, "veclower", /* name */ 0, /* gate */ expand_vector_operations, /* execute */ @@ -541,12 +543,14 @@ struct tree_opt_pass pass_lower_vector = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_dump_func | TODO_ggc_collect - | TODO_verify_stmts, /* todo_flags_finish */ - 0 /* letter */ + | TODO_verify_stmts /* todo_flags_finish */ + } }; -struct tree_opt_pass pass_lower_vector_ssa = +struct gimple_opt_pass pass_lower_vector_ssa = { + { + GIMPLE_PASS, "veclower2", /* name */ gate_expand_vector_operations, /* gate */ expand_vector_operations, /* execute */ @@ -560,8 +564,8 @@ struct tree_opt_pass pass_lower_vector_ssa = 0, /* todo_flags_start */ TODO_dump_func | TODO_update_ssa /* todo_flags_finish */ | TODO_verify_ssa - | TODO_verify_stmts | TODO_verify_flow, - 0 /* letter */ + | TODO_verify_stmts | TODO_verify_flow + } }; #include "gt-tree-vect-generic.h" diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index 7f631fb..ac3f843 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -2767,8 +2767,10 @@ gate_increase_alignment (void) return flag_section_anchors && flag_tree_vectorize; } -struct tree_opt_pass pass_ipa_increase_alignment = +struct simple_ipa_opt_pass pass_ipa_increase_alignment = { + { + SIMPLE_IPA_PASS, "increase_alignment", /* name */ gate_increase_alignment, /* gate */ increase_alignment, /* execute */ @@ -2780,6 +2782,6 @@ struct tree_opt_pass pass_ipa_increase_alignment = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - 0, /* todo_flags_finish */ - 0 /* letter */ + 0 /* todo_flags_finish */ + } }; diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index eaeaea0..5944e6a 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -6207,8 +6207,10 @@ gate_vrp (void) return flag_tree_vrp != 0; } -struct tree_opt_pass pass_vrp = +struct gimple_opt_pass pass_vrp = { + { + GIMPLE_PASS, "vrp", /* name */ gate_vrp, /* gate */ execute_vrp, /* execute */ @@ -6224,6 +6226,6 @@ struct tree_opt_pass pass_vrp = | TODO_ggc_collect | TODO_verify_ssa | TODO_dump_func - | TODO_update_ssa, /* todo_flags_finish */ - 0 /* letter */ + | TODO_update_ssa /* todo_flags_finish */ + } }; diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index b8db269..de996ac 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -3406,8 +3406,10 @@ gate_handle_var_tracking (void) -struct tree_opt_pass pass_variable_tracking = +struct rtl_opt_pass pass_variable_tracking = { + { + RTL_PASS, "vartrack", /* name */ gate_handle_var_tracking, /* gate */ variable_tracking_main, /* execute */ @@ -3419,7 +3421,7 @@ struct tree_opt_pass pass_variable_tracking = 0, /* properties_provided */ 0, /* properties_destroyed */ 0, /* todo_flags_start */ - TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ - 'V' /* letter */ + TODO_dump_func | TODO_verify_rtl_sharing/* todo_flags_finish */ + } }; @@ -371,8 +371,10 @@ web_main (void) return 0; } -struct tree_opt_pass pass_web = +struct rtl_opt_pass pass_web = { + { + RTL_PASS, "web", /* name */ gate_handle_web, /* gate */ web_main, /* execute */ @@ -385,7 +387,7 @@ struct tree_opt_pass pass_web = 0, /* properties_destroyed */ 0, /* todo_flags_start */ TODO_df_finish | TODO_verify_rtl_sharing | - TODO_dump_func, /* todo_flags_finish */ - 'Z' /* letter */ + TODO_dump_func /* todo_flags_finish */ + } }; |