aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog142
-rw-r--r--gcc/auto-inc-dec.c6
-rw-r--r--gcc/bb-reorder.c20
-rw-r--r--gcc/bt-load.c12
-rw-r--r--gcc/cfgcleanup.c12
-rw-r--r--gcc/cfgexpand.c6
-rw-r--r--gcc/cfglayout.c12
-rw-r--r--gcc/cfgrtl.c6
-rw-r--r--gcc/cgraph.c2
-rw-r--r--gcc/cgraphbuild.c14
-rw-r--r--gcc/cgraphunit.c4
-rw-r--r--gcc/combine-stack-adj.c6
-rw-r--r--gcc/combine.c6
-rw-r--r--gcc/cse.c14
-rw-r--r--gcc/dce.c16
-rw-r--r--gcc/df-core.c24
-rw-r--r--gcc/doc/invoke.texi88
-rw-r--r--gcc/dse.c16
-rw-r--r--gcc/emit-rtl.c8
-rw-r--r--gcc/except.c20
-rw-r--r--gcc/final.c32
-rw-r--r--gcc/function.c40
-rw-r--r--gcc/fwprop.c16
-rw-r--r--gcc/gcse.c16
-rw-r--r--gcc/gimple-low.c16
-rw-r--r--gcc/global.c10
-rw-r--r--gcc/ifcvt.c24
-rw-r--r--gcc/init-regs.c8
-rw-r--r--gcc/integrate.c8
-rw-r--r--gcc/ipa-cp.c9
-rw-r--r--gcc/ipa-inline.c40
-rw-r--r--gcc/ipa-pure-const.c8
-rw-r--r--gcc/ipa-reference.c8
-rw-r--r--gcc/ipa-struct-reorg.c8
-rw-r--r--gcc/ipa-type-escape.c8
-rw-r--r--gcc/ipa.c8
-rw-r--r--gcc/jump.c8
-rw-r--r--gcc/local-alloc.c8
-rw-r--r--gcc/loop-init.c52
-rw-r--r--gcc/lower-subreg.c16
-rw-r--r--gcc/matrix-reorg.c9
-rw-r--r--gcc/mode-switching.c8
-rw-r--r--gcc/modulo-sched.c8
-rw-r--r--gcc/omp-low.c24
-rw-r--r--gcc/passes.c74
-rw-r--r--gcc/postreload-gcse.c8
-rw-r--r--gcc/postreload.c8
-rw-r--r--gcc/predict.c8
-rw-r--r--gcc/recog.c48
-rw-r--r--gcc/reg-stack.c16
-rw-r--r--gcc/regclass.c24
-rw-r--r--gcc/regmove.c8
-rw-r--r--gcc/regrename.c16
-rw-r--r--gcc/reorg.c16
-rw-r--r--gcc/rtl-factoring.c9
-rw-r--r--gcc/sched-rgn.c16
-rw-r--r--gcc/see.c8
-rw-r--r--gcc/stack-ptr-mod.c8
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/gcc.dg/20050811-1.c4
-rw-r--r--gcc/testsuite/gcc.dg/20050811-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/cmdlne-dI-M.c2
-rw-r--r--gcc/testsuite/gcc.dg/cpp/cmdlne-dM-M.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr30957-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/sms-2.c2
-rw-r--r--gcc/testsuite/gcc.dg/var-expand1.c2
-rw-r--r--gcc/testsuite/gcc.dg/var-expand3.c2
-rw-r--r--gcc/toplev.c2
-rw-r--r--gcc/tracer.c8
-rw-r--r--gcc/tree-cfg.c40
-rw-r--r--gcc/tree-cfgcleanup.c9
-rw-r--r--gcc/tree-complex.c14
-rw-r--r--gcc/tree-dfa.c8
-rw-r--r--gcc/tree-dump.c3
-rw-r--r--gcc/tree-dump.h2
-rw-r--r--gcc/tree-eh.c16
-rw-r--r--gcc/tree-if-conv.c8
-rw-r--r--gcc/tree-into-ssa.c8
-rw-r--r--gcc/tree-loop-distribution.c8
-rw-r--r--gcc/tree-mudflap.c16
-rw-r--r--gcc/tree-nomudflap.c16
-rw-r--r--gcc/tree-nrv.c16
-rw-r--r--gcc/tree-object-size.c8
-rw-r--r--gcc/tree-optimize.c66
-rw-r--r--gcc/tree-outof-ssa.c8
-rw-r--r--gcc/tree-pass.h457
-rw-r--r--gcc/tree-profile.c8
-rw-r--r--gcc/tree-sra.c16
-rw-r--r--gcc/tree-ssa-alias.c24
-rw-r--r--gcc/tree-ssa-ccp.c24
-rw-r--r--gcc/tree-ssa-copy.c8
-rw-r--r--gcc/tree-ssa-copyrename.c10
-rw-r--r--gcc/tree-ssa-dce.c24
-rw-r--r--gcc/tree-ssa-dom.c16
-rw-r--r--gcc/tree-ssa-dse.c17
-rw-r--r--gcc/tree-ssa-forwprop.c9
-rw-r--r--gcc/tree-ssa-ifcombine.c9
-rw-r--r--gcc/tree-ssa-loop-ch.c8
-rw-r--r--gcc/tree-ssa-loop.c136
-rw-r--r--gcc/tree-ssa-math-opts.c24
-rw-r--r--gcc/tree-ssa-phiopt.c16
-rw-r--r--gcc/tree-ssa-phiprop.c9
-rw-r--r--gcc/tree-ssa-pre.c16
-rw-r--r--gcc/tree-ssa-reassoc.c8
-rw-r--r--gcc/tree-ssa-sink.c8
-rw-r--r--gcc/tree-ssa-structalias.c8
-rw-r--r--gcc/tree-ssa-uncprop.c8
-rw-r--r--gcc/tree-ssa.c24
-rw-r--r--gcc/tree-ssanames.c8
-rw-r--r--gcc/tree-stdarg.c8
-rw-r--r--gcc/tree-tailcall.c16
-rw-r--r--gcc/tree-vect-generic.c16
-rw-r--r--gcc/tree-vectorizer.c8
-rw-r--r--gcc/tree-vrp.c8
-rw-r--r--gcc/var-tracking.c8
-rw-r--r--gcc/web.c8
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 */
+ }
};
diff --git a/gcc/cse.c b/gcc/cse.c
index 82ea2b7..ef135e9 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -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 */
+ }
};
diff --git a/gcc/dce.c b/gcc/dce.c
index 70b9e22..f8e54bb 100644
--- a/gcc/dce.c
+++ b/gcc/dce.c
@@ -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.
diff --git a/gcc/dse.c b/gcc/dse.c
index 48df350..fea7afa 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -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 */
+ }
};
diff --git a/gcc/gcse.c b/gcc/gcse.c
index c9c8b4c..201e42c 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -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 */
+ }
};
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 0bfe255..16023be 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -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 */
+ }
};
diff --git a/gcc/jump.c b/gcc/jump.c
index 4564cd1..1aa0c6d 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -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 */
+ }
};
diff --git a/gcc/see.c b/gcc/see.c
index d932f51..c6f584c 100644
--- a/gcc/see.c
+++ b/gcc/see.c
@@ -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 */
+ }
};
diff --git a/gcc/web.c b/gcc/web.c
index f45d344..ada150e 100644
--- a/gcc/web.c
+++ b/gcc/web.c
@@ -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 */
+ }
};