re PR other/35094 (RTL dump file letters hosed and partly undocumented)

* gcc.dg/20050811-2.c: Update dumping flags.
	* gcc.dg/sms-2.c: Update dumping flags.
	* gcc.dg/var-expand1.c: Update dumping flags.
	* gcc.dg/var-expand3.c: Update dumping flags.
	* gcc.dg/pr30957-1.c: Update dumping flags.
	* gcc.dg/20050811-1.c: Update dumping flags.
	* gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail.
	* gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail.

	PR other/35094
	* toplev.c (decode_d_option): Handle all CPP flags.
	* tree-vrp.c: Update tree_pass descriptors.
	* regrename.c: Update tree_pass descriptors.
	* fwprop.c: Update tree_pass descriptors.
	* doc/invoke.texi: Remove documentation of dropped -d? flags.
	* tree-into-ssa.c: Update tree_pass descriptors.
	* tree-dump.c: Update tree_pass descriptors.
	* tree-complex.c: Update tree_pass descriptors.
	* tree-dump.h: Update tree_pass descriptors.
	* see.c: Update tree_pass descriptors.
	* cgraphbuild.c: Update tree_pass descriptors.
	* tracer.c: Update tree_pass descriptors.
	* tree-loop-distribution.c: Update tree_pass descriptors.
	* cgraph.c: Update tree_pass descriptors.
	* postreload-gcse.c: Update tree_pass descriptors.
	* postreload.c: Update tree_pass descriptors.
	* tree-ssa-loop-ch.c: Update tree_pass descriptors.
	* tree-tailcall.c: Update tree_pass descriptors.
	* tree-pass.h (tree_opt_pass): Rename to ...
	(opt_pass) ... this one; add "type" field and remove letter field.
	(gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
	(execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
	all_lowering_passes): Update declaration.
	* ipa-cp.c: Update tree_pass descriptors.
	* final.c: Update tree_pass descriptors.
	* omp-low.c: Update tree_pass descriptors.
	* tree-ssa-dse.c: Update tree_pass descriptors.
	* ipa-reference.c: Update tree_pass descriptors.
	* tree-ssa-uncprop.c: Update tree_pass descriptors.
	* auto-inc-dec.c: Update tree_pass descriptors.
	* reorg.c: Update tree_pass descriptors.
	* cgraphunit.c: Update tree_pass descriptors.
	* tree-ssa-copyrename.c: Update tree_pass descriptors.
	* tree-ssa-ccp.c: Update tree_pass descriptors.
	* df-core.c: Update tree_pass descriptors.
	* mode-switching.c: Update tree_pass descriptors.
	* tree-nomudflap.c: Update tree_pass descriptors.
	* modulo-sched.c: Update tree_pass descriptors.
	* ipa-pure-const.c: Update tree_pass descriptors.
	* cse.c: Update tree_pass descriptors.
	* web.c: Update tree_pass descriptors.
	* tree-stdarg.c: Update tree_pass descriptors.
	* tree-ssa-math-opts.c: Update tree_pass descriptors.
	* tree-ssa-dom.c: Update tree_pass descriptors.
	* tree-nrv.c: Update tree_pass descriptors.
	* tree-ssa-alias.c: Update tree_pass descriptors.
	* loop-init.c: Update tree_pass descriptors.
	* gimple-low.c: Update tree_pass descriptors.
	* ipa-inline.c: Update tree_pass descriptors.
	* tree-ssa-sink.c: Update tree_pass descriptors.
	* global.c: Update tree_pass descriptors.
	* ifcvt.c: Update tree_pass descriptors.
	* jump.c: Update tree_pass descriptors.
	* predict.c: Update tree_pass descriptors.
	* tree-ssa-loop.c: Update tree_pass descriptors.
	* recog.c: Update tree_pass descriptors.
	* dse.c: Update tree_pass descriptors.
	* tree-ssa-ifcombine.c: Update tree_pass descriptors.
	* tree-eh.c: Update tree_pass descriptors.
	* regmove.c: Update tree_pass descriptors.
	* local-alloc.c
	* function.c: Update tree_pass descriptors.
	* tree-vectorizer.c: Update tree_pass descriptors.
	* gcse.c: Update tree_pass descriptors.
	* ipa-type-escape.c: Update tree_pass descriptors.
	* tree-if-conv.c: Update tree_pass descriptors.
	* init-regs.c: Update tree_pass descriptors.
	* ipa.c: Update tree_pass descriptors.
	* tree-ssa-phiopt.c: Update tree_pass descriptors.
	* rtl-factoring.c: Update tree_pass descriptors.
	* lower-subreg.c: Update tree_pass descriptors.
	* bt-load.c: Update tree_pass descriptors.
	* tree-dfa.c: Update tree_pass descriptors.
	* except.c: Update tree_pass descriptors.
	* emit-rtl.c: Update tree_pass descriptors.
	* cfgexpand.c: Update tree_pass descriptors.
	* tree-cfgcleanup.c: Update tree_pass descriptors.
	* cfgcleanup.c: Update tree_pass descriptors.
	* tree-ssa-pre.c: Update tree_pass descriptors.
	* tree-sra.c: Update tree_pass descriptors.
	* tree-mudflap.c: Update tree_pass descriptors.
	* tree-ssa-copy.c: Update tree_pass descriptors.
	* cfglayout.c: Update tree_pass descriptors.
	* tree-ssa-forwprop.c: Update tree_pass descriptors.
	* tree-ssa-dce.c: Update tree_pass descriptors.
	* tree-ssa.c: Update tree_pass descriptors.
	* regclass.c: Update tree_pass descriptors.
	* integrate.c: Update tree_pass descriptors.
	* tree-optimize.c: Update tree_pass descriptors.
	* tree-ssa-phiprop.c: Update tree_pass descriptors.
	* tree-object-size.c: Update tree_pass descriptors.
	* combine.c: Update tree_pass descriptors.
	* tree-outof-ssa.c: Update tree_pass descriptors.
	* bb-reorder.c: Update tree_pass descriptors.
	* stack-ptr-mod.c: Update tree_pass descriptors.
	* var-tracking.c: Update tree_pass descriptors.
	* tree-profile.c: Update tree_pass descriptors.
	* tree-vect-generic.c: Update tree_pass descriptors.
	* reg-stack.c: Update tree_pass descriptors.
	* sched-rgn.c: Update tree_pass descriptors.
	* tree-ssa-structalias.c: Update tree_pass descriptors.
	* tree-cfg.c: Update tree_pass descriptors.
	* passes.c (current_pass): Update declaration.
	(finish_optimization_passes): Update.
	(all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
	(register_one_dump_file, register_dump_files_1, next_pass_1):
 	Update arguments.
	(init_optimization_passes): Update handling of new types.
	(execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
	* ipa-struct-reorg.c: Update tree_pass descriptors.
	* tree-ssa-reassoc.c: Update tree_pass descriptors.
	* combine-stack-adj.c: Update tree_pass descriptors.
	* cfgrtl.c: Update tree_pass descriptors.
	* dce.c: Update tree_pass descriptors.
	* tree-ssanames.c: Update tree_pass descriptors.

From-SVN: r133342
This commit is contained in:
Jan Hubicka 2008-03-19 12:22:40 +01:00 committed by Jan Hubicka
parent 8cb3ee3785
commit 8ddbbcaea4
116 changed files with 1405 additions and 930 deletions

View File

@ -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> 2008-03-19 Richard Guenther <rguenther@suse.de>
PR middle-end/35609 PR middle-end/35609
@ -89,29 +208,6 @@
* gimplify.c (gimplify_expr): Gimplify second operand of * gimplify.c (gimplify_expr): Gimplify second operand of
OMP_ATOMIC_LOAD. OMP_ATOMIC_LOAD.
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> 2008-03-17 Richard Guenther <rguenther@suse.de>
PR tree-optimization/19637 PR tree-optimization/19637

View File

@ -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 */ "auto-inc-dec", /* name */
gate_auto_inc_dec, /* gate */ gate_auto_inc_dec, /* gate */
rest_of_handle_auto_inc_dec, /* execute */ rest_of_handle_auto_inc_dec, /* execute */
@ -1555,6 +1557,6 @@ struct tree_opt_pass pass_inc_dec =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_df_finish, /* todo_flags_finish */ TODO_df_finish, /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -2096,8 +2096,10 @@ done:
return 0; return 0;
} }
struct tree_opt_pass pass_duplicate_computed_gotos = struct rtl_opt_pass pass_duplicate_computed_gotos =
{ {
{
RTL_PASS,
"compgotos", /* name */ "compgotos", /* name */
gate_duplicate_computed_gotos, /* gate */ gate_duplicate_computed_gotos, /* gate */
duplicate_computed_gotos, /* execute */ duplicate_computed_gotos, /* execute */
@ -2110,7 +2112,7 @@ struct tree_opt_pass pass_duplicate_computed_gotos =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
0 /* letter */ }
}; };
@ -2239,8 +2241,10 @@ rest_of_handle_reorder_blocks (void)
return 0; return 0;
} }
struct tree_opt_pass pass_reorder_blocks = struct rtl_opt_pass pass_reorder_blocks =
{ {
{
RTL_PASS,
"bbro", /* name */ "bbro", /* name */
gate_handle_reorder_blocks, /* gate */ gate_handle_reorder_blocks, /* gate */
rest_of_handle_reorder_blocks, /* execute */ rest_of_handle_reorder_blocks, /* execute */
@ -2253,7 +2257,7 @@ struct tree_opt_pass pass_reorder_blocks =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
'B' /* letter */ }
}; };
static bool static bool
@ -2277,8 +2281,10 @@ rest_of_handle_partition_blocks (void)
return 0; return 0;
} }
struct tree_opt_pass pass_partition_blocks = struct rtl_opt_pass pass_partition_blocks =
{ {
{
RTL_PASS,
"bbpart", /* name */ "bbpart", /* name */
gate_handle_partition_blocks, /* gate */ gate_handle_partition_blocks, /* gate */
rest_of_handle_partition_blocks, /* execute */ rest_of_handle_partition_blocks, /* execute */
@ -2290,8 +2296,8 @@ struct tree_opt_pass pass_partition_blocks =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing/* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1505,8 +1505,10 @@ rest_of_handle_branch_target_load_optimize1 (void)
return 0; return 0;
} }
struct tree_opt_pass pass_branch_target_load_optimize1 = struct rtl_opt_pass pass_branch_target_load_optimize1 =
{ {
{
RTL_PASS,
"btl1", /* name */ "btl1", /* name */
gate_handle_branch_target_load_optimize1, /* gate */ gate_handle_branch_target_load_optimize1, /* gate */
rest_of_handle_branch_target_load_optimize1, /* execute */ 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_dump_func |
TODO_verify_rtl_sharing | TODO_verify_rtl_sharing |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect, /* todo_flags_finish */
'd' /* letter */ }
}; };
static bool static bool
@ -1553,8 +1555,10 @@ rest_of_handle_branch_target_load_optimize2 (void)
return 0; return 0;
} }
struct tree_opt_pass pass_branch_target_load_optimize2 = struct rtl_opt_pass pass_branch_target_load_optimize2 =
{ {
{
RTL_PASS,
"btl2", /* name */ "btl2", /* name */
gate_handle_branch_target_load_optimize2, /* gate */ gate_handle_branch_target_load_optimize2, /* gate */
rest_of_handle_branch_target_load_optimize2, /* execute */ 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 */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect, /* todo_flags_finish */
'd' /* letter */ }
}; };

View File

@ -2181,8 +2181,10 @@ rest_of_handle_jump (void)
return 0; return 0;
} }
struct tree_opt_pass pass_jump = struct rtl_opt_pass pass_jump =
{ {
{
RTL_PASS,
"sibling", /* name */ "sibling", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_jump, /* execute */ rest_of_handle_jump, /* execute */
@ -2195,7 +2197,7 @@ struct tree_opt_pass pass_jump =
0, /* properties_destroyed */ 0, /* properties_destroyed */
TODO_ggc_collect, /* todo_flags_start */ TODO_ggc_collect, /* todo_flags_start */
TODO_verify_flow, /* todo_flags_finish */ 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 */ "jump", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_jump2, /* execute */ rest_of_handle_jump2, /* execute */
@ -2225,7 +2229,7 @@ struct tree_opt_pass pass_jump2 =
0, /* properties_destroyed */ 0, /* properties_destroyed */
TODO_ggc_collect, /* todo_flags_start */ TODO_ggc_collect, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing,/* todo_flags_finish */
'j' /* letter */ }
}; };

View File

@ -1986,8 +1986,10 @@ tree_expand_cfg (void)
return 0; return 0;
} }
struct tree_opt_pass pass_expand = struct gimple_opt_pass pass_expand =
{ {
{
GIMPLE_PASS,
"expand", /* name */ "expand", /* name */
NULL, /* gate */ NULL, /* gate */
tree_expand_cfg, /* execute */ tree_expand_cfg, /* execute */
@ -2001,5 +2003,5 @@ struct tree_opt_pass pass_expand =
PROP_trees, /* properties_destroyed */ PROP_trees, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func, /* todo_flags_finish */
'r' /* letter */ }
}; };

View File

@ -340,8 +340,10 @@ outof_cfg_layout_mode (void)
return 0; 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 */ "into_cfglayout", /* name */
NULL, /* gate */ NULL, /* gate */
into_cfg_layout_mode, /* execute */ into_cfg_layout_mode, /* execute */
@ -354,11 +356,13 @@ struct tree_opt_pass pass_into_cfg_layout_mode =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ 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 */ "outof_cfglayout", /* name */
NULL, /* gate */ NULL, /* gate */
outof_cfg_layout_mode, /* execute */ outof_cfg_layout_mode, /* execute */
@ -371,7 +375,7 @@ struct tree_opt_pass pass_outof_cfg_layout_mode =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func, /* todo_flags_finish */
0 /* letter */ }
}; };
/* Return sope resulting from combination of S1 and S2. */ /* Return sope resulting from combination of S1 and S2. */

View File

@ -427,8 +427,10 @@ free_bb_for_insn (void)
return 0; return 0;
} }
struct tree_opt_pass pass_free_cfg = struct rtl_opt_pass pass_free_cfg =
{ {
{
RTL_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
free_bb_for_insn, /* execute */ free_bb_for_insn, /* execute */
@ -441,7 +443,7 @@ struct tree_opt_pass pass_free_cfg =
PROP_cfg, /* properties_destroyed */ PROP_cfg, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0, /* todo_flags_finish */
0 /* letter */ }
}; };
/* Return RTX to emit after when we want to emit code on the entry of function. */ /* Return RTX to emit after when we want to emit code on the entry of function. */

View File

@ -1070,7 +1070,7 @@ cgraph_add_new_function (tree fndecl, bool lowered)
tree_lowering_passes (fndecl); tree_lowering_passes (fndecl);
bitmap_obstack_initialize (NULL); bitmap_obstack_initialize (NULL);
if (!gimple_in_ssa_p (DECL_STRUCT_FUNCTION (fndecl)) && optimize) 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); bitmap_obstack_release (NULL);
tree_rest_of_compilation (fndecl); tree_rest_of_compilation (fndecl);
pop_cfun (); pop_cfun ();

View File

@ -170,8 +170,10 @@ build_cgraph_edges (void)
return 0; return 0;
} }
struct tree_opt_pass pass_build_cgraph_edges = struct gimple_opt_pass pass_build_cgraph_edges =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
build_cgraph_edges, /* execute */ build_cgraph_edges, /* execute */
@ -183,8 +185,8 @@ struct tree_opt_pass pass_build_cgraph_edges =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Record references to functions and other variables present in the /* Record references to functions and other variables present in the
@ -238,8 +240,10 @@ rebuild_cgraph_edges (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rebuild_cgraph_edges = struct gimple_opt_pass pass_rebuild_cgraph_edges =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
rebuild_cgraph_edges, /* execute */ rebuild_cgraph_edges, /* execute */
@ -252,5 +256,5 @@ struct tree_opt_pass pass_rebuild_cgraph_edges =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0, /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -475,7 +475,7 @@ cgraph_process_new_functions (void)
/* When not optimizing, be sure we run early local passes anyway /* When not optimizing, be sure we run early local passes anyway
to expand OMP. */ to expand OMP. */
|| !optimize) || !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_POST_DOMINATORS);
free_dominance_info (CDI_DOMINATORS); free_dominance_info (CDI_DOMINATORS);
pop_cfun (); pop_cfun ();
@ -858,7 +858,7 @@ cgraph_analyze_function (struct cgraph_node *node)
{ {
bitmap_obstack_initialize (NULL); bitmap_obstack_initialize (NULL);
tree_register_cfg_hooks (); 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_POST_DOMINATORS);
free_dominance_info (CDI_DOMINATORS); free_dominance_info (CDI_DOMINATORS);
bitmap_obstack_release (NULL); bitmap_obstack_release (NULL);

View File

@ -472,8 +472,10 @@ rest_of_handle_stack_adjustments (void)
return 0; return 0;
} }
struct tree_opt_pass pass_stack_adjustments = struct rtl_opt_pass pass_stack_adjustments =
{ {
{
RTL_PASS,
"csa", /* name */ "csa", /* name */
gate_handle_stack_adjustments, /* gate */ gate_handle_stack_adjustments, /* gate */
rest_of_handle_stack_adjustments, /* execute */ 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_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect, /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -13035,8 +13035,10 @@ rest_of_handle_combine (void)
return 0; return 0;
} }
struct tree_opt_pass pass_combine = struct rtl_opt_pass pass_combine =
{ {
{
RTL_PASS,
"combine", /* name */ "combine", /* name */
gate_handle_combine, /* gate */ gate_handle_combine, /* gate */
rest_of_handle_combine, /* execute */ rest_of_handle_combine, /* execute */
@ -13051,6 +13053,6 @@ struct tree_opt_pass pass_combine =
TODO_dump_func | TODO_dump_func |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect, /* todo_flags_finish */
'c' /* letter */ }
}; };

View File

@ -7011,8 +7011,10 @@ rest_of_handle_cse (void)
return 0; return 0;
} }
struct tree_opt_pass pass_cse = struct rtl_opt_pass pass_cse =
{ {
{
RTL_PASS,
"cse1", /* name */ "cse1", /* name */
gate_handle_cse, /* gate */ gate_handle_cse, /* gate */
rest_of_handle_cse, /* execute */ rest_of_handle_cse, /* execute */
@ -7028,7 +7030,7 @@ struct tree_opt_pass pass_cse =
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect | TODO_ggc_collect |
TODO_verify_flow, /* todo_flags_finish */ 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 */ "cse2", /* name */
gate_handle_cse2, /* gate */ gate_handle_cse2, /* gate */
rest_of_handle_cse2, /* execute */ rest_of_handle_cse2, /* execute */
@ -7088,7 +7092,7 @@ struct tree_opt_pass pass_cse2 =
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect | TODO_ggc_collect |
TODO_verify_flow, /* todo_flags_finish */ TODO_verify_flow /* todo_flags_finish */
't' /* letter */ }
}; };

View File

@ -567,8 +567,10 @@ gate_ud_dce (void)
&& dbg_cnt (dce_ud); && dbg_cnt (dce_ud);
} }
struct tree_opt_pass pass_ud_rtl_dce = struct rtl_opt_pass pass_ud_rtl_dce =
{ {
{
RTL_PASS,
"dce", /* name */ "dce", /* name */
gate_ud_dce, /* gate */ gate_ud_dce, /* gate */
rest_of_handle_ud_dce, /* execute */ rest_of_handle_ud_dce, /* execute */
@ -582,8 +584,8 @@ struct tree_opt_pass pass_ud_rtl_dce =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'w' /* letter */ }
}; };
@ -853,8 +855,10 @@ gate_fast_dce (void)
&& dbg_cnt (dce_fast); && dbg_cnt (dce_fast);
} }
struct tree_opt_pass pass_fast_rtl_dce = struct rtl_opt_pass pass_fast_rtl_dce =
{ {
{
RTL_PASS,
"dce", /* name */ "dce", /* name */
gate_fast_dce, /* gate */ gate_fast_dce, /* gate */
rest_of_handle_fast_dce, /* execute */ rest_of_handle_fast_dce, /* execute */
@ -868,6 +872,6 @@ struct tree_opt_pass pass_fast_rtl_dce =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'w' /* letter */ }
}; };

View File

@ -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 */ "dfinit", /* name */
gate_opt, /* gate */ gate_opt, /* gate */
rest_of_handle_df_initialize, /* execute */ rest_of_handle_df_initialize, /* execute */
@ -766,8 +768,8 @@ struct tree_opt_pass pass_df_initialize_opt =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
'z' /* letter */ }
}; };
@ -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 */ "dfinit", /* name */
gate_no_opt, /* gate */ gate_no_opt, /* gate */
rest_of_handle_df_initialize, /* execute */ rest_of_handle_df_initialize, /* execute */
@ -791,8 +795,8 @@ struct tree_opt_pass pass_df_initialize_no_opt =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
'z' /* letter */ }
}; };
@ -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 */ "dfinish", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_df_finish, /* execute */ rest_of_handle_df_finish, /* execute */
@ -838,8 +844,8 @@ struct tree_opt_pass pass_df_finish =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
'z' /* letter */ }
}; };

View File

@ -4446,39 +4446,31 @@ letters for use in @var{letters} and @var{pass}, and their meanings:
@opindex dA @opindex dA
Annotate the assembler output with miscellaneous debugging information. Annotate the assembler output with miscellaneous debugging information.
@item -dB
@itemx -fdump-rtl-bbro @itemx -fdump-rtl-bbro
@opindex dB
@opindex fdump-rtl-bbro @opindex fdump-rtl-bbro
Dump after block reordering, to @file{@var{file}.148r.bbro}. Dump after block reordering, to @file{@var{file}.148r.bbro}.
@item -dc
@itemx -fdump-rtl-combine @itemx -fdump-rtl-combine
@opindex dc
@opindex fdump-rtl-combine @opindex fdump-rtl-combine
Dump after the RTL instruction combination pass, to the file Dump after the RTL instruction combination pass, to the file
@file{@var{file}.129r.combine}. @file{@var{file}.129r.combine}.
@item -dC
@itemx -fdump-rtl-ce1 @itemx -fdump-rtl-ce1
@itemx -fdump-rtl-ce2 @itemx -fdump-rtl-ce2
@opindex dC
@opindex fdump-rtl-ce1 @opindex fdump-rtl-ce1
@opindex fdump-rtl-ce2 @opindex fdump-rtl-ce2
@option{-dC} and @option{-fdump-rtl-ce1} enable dumping after the @option{-fdump-rtl-ce1} enable dumping after the
first if conversion, to the file @file{@var{file}.117r.ce1}. @option{-dC} first if conversion, to the file @file{@var{file}.117r.ce1}.
and @option{-fdump-rtl-ce2} enable dumping after the second if @option{-fdump-rtl-ce2} enable dumping after the second if
conversion, to the file @file{@var{file}.130r.ce2}. conversion, to the file @file{@var{file}.130r.ce2}.
@item -dd
@itemx -fdump-rtl-btl @itemx -fdump-rtl-btl
@itemx -fdump-rtl-dbr @itemx -fdump-rtl-dbr
@opindex dd
@opindex fdump-rtl-btl @opindex fdump-rtl-btl
@opindex fdump-rtl-dbr @opindex fdump-rtl-dbr
@option{-dd} and @option{-fdump-rtl-btl} enable dumping after branch @option{-fdump-rtl-btl} enable dumping after branch
target load optimization, to @file{@var{file}.31.btl}. @option{-dd} target load optimization, to @file{@var{file}.31.btl}.
and @option{-fdump-rtl-dbr} enable dumping after delayed branch @option{-fdump-rtl-dbr} enable dumping after delayed branch
scheduling, to @file{@var{file}.36.dbr}. scheduling, to @file{@var{file}.36.dbr}.
@item -dD @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 Dump all macro definitions, at the end of preprocessing, in addition to
normal output. normal output.
@item -dE
@itemx -fdump-rtl-ce3 @itemx -fdump-rtl-ce3
@opindex dE
@opindex fdump-rtl-ce3 @opindex fdump-rtl-ce3
Dump after the third if conversion, to @file{@var{file}.146r.ce3}. Dump after the third if conversion, to @file{@var{file}.146r.ce3}.
@item -df
@itemx -fdump-rtl-cfg @itemx -fdump-rtl-cfg
@itemx -fdump-rtl-life @itemx -fdump-rtl-life
@opindex df
@opindex fdump-rtl-cfg @opindex fdump-rtl-cfg
@opindex fdump-rtl-life @opindex fdump-rtl-life
@option{-df} and @option{-fdump-rtl-cfg} enable dumping after control @option{-fdump-rtl-cfg} enable dumping after control
and data flow analysis, to @file{@var{file}.116r.cfg}. @option{-df} and data flow analysis, to @file{@var{file}.116r.cfg}.
and @option{-fdump-rtl-cfg} enable dumping dump after life analysis, @option{-fdump-rtl-cfg} enable dumping dump after life analysis,
to @file{@var{file}.128r.life1} and @file{@var{file}.135r.life2}. to @file{@var{file}.128r.life1} and @file{@var{file}.135r.life2}.
@item -dg
@itemx -fdump-rtl-greg @itemx -fdump-rtl-greg
@opindex dg
@opindex fdump-rtl-greg @opindex fdump-rtl-greg
Dump after global register allocation, to @file{@var{file}.139r.greg}. Dump after global register allocation, to @file{@var{file}.139r.greg}.
@item -dG
@itemx -fdump-rtl-gcse @itemx -fdump-rtl-gcse
@itemx -fdump-rtl-bypass @itemx -fdump-rtl-bypass
@opindex dG
@opindex fdump-rtl-gcse @opindex fdump-rtl-gcse
@opindex fdump-rtl-bypass @opindex fdump-rtl-bypass
@option{-dG} and @option{-fdump-rtl-gcse} enable dumping after GCSE, to @option{-fdump-rtl-gcse} enable dumping after GCSE, to
@file{@var{file}.114r.gcse}. @option{-dG} and @option{-fdump-rtl-bypass} @file{@var{file}.114r.gcse}. @option{-fdump-rtl-bypass}
enable dumping after jump bypassing and control flow optimizations, to enable dumping after jump bypassing and control flow optimizations, to
@file{@var{file}.115r.bypass}. @file{@var{file}.115r.bypass}.
@item -dh
@itemx -fdump-rtl-eh @itemx -fdump-rtl-eh
@opindex dh
@opindex fdump-rtl-eh @opindex fdump-rtl-eh
Dump after finalization of EH handling code, to @file{@var{file}.02.eh}. Dump after finalization of EH handling code, to @file{@var{file}.02.eh}.
@item -di
@itemx -fdump-rtl-sibling @itemx -fdump-rtl-sibling
@opindex di
@opindex fdump-rtl-sibling @opindex fdump-rtl-sibling
Dump after sibling call optimizations, to @file{@var{file}.106r.sibling}. Dump after sibling call optimizations, to @file{@var{file}.106r.sibling}.
@item -dj
@itemx -fdump-rtl-jump @itemx -fdump-rtl-jump
@opindex dj
@opindex fdump-rtl-jump @opindex fdump-rtl-jump
Dump after the first jump optimization, to @file{@var{file}.112r.jump}. Dump after the first jump optimization, to @file{@var{file}.112r.jump}.
@item -dk
@itemx -fdump-rtl-stack @itemx -fdump-rtl-stack
@opindex dk
@opindex fdump-rtl-stack @opindex fdump-rtl-stack
Dump after conversion from GCC's "flat register file" registers to the Dump after conversion from GCC's "flat register file" registers to the
x87's stack-like registers, to @file{@var{file}.152r.stack}. x87's stack-like registers, to @file{@var{file}.152r.stack}.
@item -dl
@itemx -fdump-rtl-lreg @itemx -fdump-rtl-lreg
@opindex dl
@opindex fdump-rtl-lreg @opindex fdump-rtl-lreg
Dump after local register allocation, to @file{@var{file}.138r.lreg}. Dump after local register allocation, to @file{@var{file}.138r.lreg}.
@item -dL
@itemx -fdump-rtl-loop2 @itemx -fdump-rtl-loop2
@opindex dL
@opindex fdump-rtl-loop2 @opindex fdump-rtl-loop2
@option{-dL} and @option{-fdump-rtl-loop2} enable dumping after the @option{-dL} and @option{-fdump-rtl-loop2} enable dumping after the
loop optimization pass, to @file{@var{file}.119r.loop2}, 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}.121r.loop2_invariant}, and
@file{@var{file}.125r.loop2_done}. @file{@var{file}.125r.loop2_done}.
@item -dm
@itemx -fdump-rtl-sms @itemx -fdump-rtl-sms
@opindex dm
@opindex fdump-rtl-sms @opindex fdump-rtl-sms
Dump after modulo scheduling, to @file{@var{file}.136r.sms}. Dump after modulo scheduling, to @file{@var{file}.136r.sms}.
@item -dM
@itemx -fdump-rtl-mach @itemx -fdump-rtl-mach
@opindex dM
@opindex fdump-rtl-mach @opindex fdump-rtl-mach
Dump after performing the machine dependent reorganization pass, to Dump after performing the machine dependent reorganization pass, to
@file{@var{file}.155r.mach} if that pass exists. @file{@var{file}.155r.mach} if that pass exists.
@item -dn
@itemx -fdump-rtl-rnreg @itemx -fdump-rtl-rnreg
@opindex dn
@opindex fdump-rtl-rnreg @opindex fdump-rtl-rnreg
Dump after register renumbering, to @file{@var{file}.147r.rnreg}. Dump after register renumbering, to @file{@var{file}.147r.rnreg}.
@item -dN
@itemx -fdump-rtl-regmove @itemx -fdump-rtl-regmove
@opindex dN
@opindex fdump-rtl-regmove @opindex fdump-rtl-regmove
Dump after the register move pass, to @file{@var{file}.132r.regmove}. Dump after the register move pass, to @file{@var{file}.132r.regmove}.
@item -do
@itemx -fdump-rtl-postreload @itemx -fdump-rtl-postreload
@opindex do
@opindex fdump-rtl-postreload @opindex fdump-rtl-postreload
Dump after post-reload optimizations, to @file{@var{file}.24.postreload}. Dump after post-reload optimizations, to @file{@var{file}.24.postreload}.
@item -dr
@itemx -fdump-rtl-expand @itemx -fdump-rtl-expand
@opindex dr
@opindex fdump-rtl-expand @opindex fdump-rtl-expand
Dump after RTL generation, to @file{@var{file}.104r.expand}. Dump after RTL generation, to @file{@var{file}.104r.expand}.
@item -dR
@itemx -fdump-rtl-sched2 @itemx -fdump-rtl-sched2
@opindex dR
@opindex fdump-rtl-sched2 @opindex fdump-rtl-sched2
Dump after the second scheduling pass, to @file{@var{file}.149r.sched2}. Dump after the second scheduling pass, to @file{@var{file}.149r.sched2}.
@item -ds
@itemx -fdump-rtl-cse @itemx -fdump-rtl-cse
@opindex ds
@opindex fdump-rtl-cse @opindex fdump-rtl-cse
Dump after CSE (including the jump optimization that sometimes follows Dump after CSE (including the jump optimization that sometimes follows
CSE), to @file{@var{file}.113r.cse}. CSE), to @file{@var{file}.113r.cse}.
@item -dS
@itemx -fdump-rtl-sched1 @itemx -fdump-rtl-sched1
@opindex dS
@opindex fdump-rtl-sched1 @opindex fdump-rtl-sched1
Dump after the first scheduling pass, to @file{@var{file}.136r.sched1}. Dump after the first scheduling pass, to @file{@var{file}.136r.sched1}.
@item -dt
@itemx -fdump-rtl-cse2 @itemx -fdump-rtl-cse2
@opindex dt
@opindex fdump-rtl-cse2 @opindex fdump-rtl-cse2
Dump after the second CSE pass (including the jump optimization that Dump after the second CSE pass (including the jump optimization that
sometimes follows CSE), to @file{@var{file}.127r.cse2}. sometimes follows CSE), to @file{@var{file}.127r.cse2}.
@item -dT
@itemx -fdump-rtl-tracer @itemx -fdump-rtl-tracer
@opindex dT
@opindex fdump-rtl-tracer @opindex fdump-rtl-tracer
Dump after running tracer, to @file{@var{file}.118r.tracer}. Dump after running tracer, to @file{@var{file}.118r.tracer}.
@item -dV
@itemx -fdump-rtl-vpt @itemx -fdump-rtl-vpt
@itemx -fdump-rtl-vartrack @itemx -fdump-rtl-vartrack
@opindex dV
@opindex fdump-rtl-vpt @opindex fdump-rtl-vpt
@opindex fdump-rtl-vartrack @opindex fdump-rtl-vartrack
@option{-dV} and @option{-fdump-rtl-vpt} enable dumping after the value @option{-fdump-rtl-vpt} enable dumping after the value
profile transformations, to @file{@var{file}.10.vpt}. @option{-dV} profile transformations, to @file{@var{file}.10.vpt}.
and @option{-fdump-rtl-vartrack} enable dumping after variable tracking, @option{-fdump-rtl-vartrack} enable dumping after variable tracking,
to @file{@var{file}.154r.vartrack}. to @file{@var{file}.154r.vartrack}.
@item -dw
@itemx -fdump-rtl-flow2 @itemx -fdump-rtl-flow2
@opindex dw
@opindex fdump-rtl-flow2 @opindex fdump-rtl-flow2
Dump after the second flow pass, to @file{@var{file}.142r.flow2}. Dump after the second flow pass, to @file{@var{file}.142r.flow2}.
@item -dz
@itemx -fdump-rtl-peephole2 @itemx -fdump-rtl-peephole2
@opindex dz
@opindex fdump-rtl-peephole2 @opindex fdump-rtl-peephole2
Dump after the peephole pass, to @file{@var{file}.145r.peephole2}. Dump after the peephole pass, to @file{@var{file}.145r.peephole2}.
@item -dZ
@itemx -fdump-rtl-web @itemx -fdump-rtl-web
@opindex dZ
@opindex fdump-rtl-web @opindex fdump-rtl-web
Dump after live range splitting, to @file{@var{file}.126r.web}. Dump after live range splitting, to @file{@var{file}.126r.web}.
@item -da
@itemx -fdump-rtl-all @itemx -fdump-rtl-all
@opindex da
@opindex fdump-rtl-all @opindex fdump-rtl-all
Produce all the dumps listed above. Produce all the dumps listed above.

View File

@ -3303,8 +3303,10 @@ gate_dse2 (void)
&& dbg_cnt (dse2); && dbg_cnt (dse2);
} }
struct tree_opt_pass pass_rtl_dse1 = struct rtl_opt_pass pass_rtl_dse1 =
{ {
{
RTL_PASS,
"dse1", /* name */ "dse1", /* name */
gate_dse1, /* gate */ gate_dse1, /* gate */
rest_of_handle_dse, /* execute */ rest_of_handle_dse, /* execute */
@ -3318,12 +3320,14 @@ struct tree_opt_pass pass_rtl_dse1 =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'w' /* letter */ }
}; };
struct tree_opt_pass pass_rtl_dse2 = struct rtl_opt_pass pass_rtl_dse2 =
{ {
{
RTL_PASS,
"dse2", /* name */ "dse2", /* name */
gate_dse2, /* gate */ gate_dse2, /* gate */
rest_of_handle_dse, /* execute */ rest_of_handle_dse, /* execute */
@ -3337,6 +3341,6 @@ struct tree_opt_pass pass_rtl_dse2 =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'w' /* letter */ }
}; };

View File

@ -2181,8 +2181,10 @@ unshare_all_rtl (void)
return 0; return 0;
} }
struct tree_opt_pass pass_unshare_all_rtl = struct rtl_opt_pass pass_unshare_all_rtl =
{ {
{
RTL_PASS,
"unshare", /* name */ "unshare", /* name */
NULL, /* gate */ NULL, /* gate */
unshare_all_rtl, /* execute */ unshare_all_rtl, /* execute */
@ -2194,8 +2196,8 @@ struct tree_opt_pass pass_unshare_all_rtl =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -2843,8 +2843,10 @@ set_nothrow_function_flags (void)
return 0; 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, /* name */
NULL, /* gate */ NULL, /* gate */
set_nothrow_function_flags, /* execute */ set_nothrow_function_flags, /* execute */
@ -2857,7 +2859,7 @@ struct tree_opt_pass pass_set_nothrow_function_flags =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0, /* todo_flags_finish */
0 /* letter */ }
}; };
@ -3372,8 +3374,10 @@ convert_to_eh_region_ranges (void)
return 0; 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 */ "eh-ranges", /* name */
NULL, /* gate */ NULL, /* gate */
convert_to_eh_region_ranges, /* execute */ convert_to_eh_region_ranges, /* execute */
@ -3386,7 +3390,7 @@ struct tree_opt_pass pass_convert_to_eh_region_ranges =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func, /* todo_flags_finish */
0 /* letter */ }
}; };
@ -3995,8 +3999,10 @@ rest_of_handle_eh (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_eh = struct rtl_opt_pass pass_rtl_eh =
{ {
{
RTL_PASS,
"eh", /* name */ "eh", /* name */
gate_handle_eh, /* gate */ gate_handle_eh, /* gate */
rest_of_handle_eh, /* execute */ rest_of_handle_eh, /* execute */
@ -4008,8 +4014,8 @@ struct tree_opt_pass pass_rtl_eh =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
'h' /* letter */ }
}; };
#include "gt-except.h" #include "gt-except.h"

View File

@ -794,8 +794,10 @@ compute_alignments (void)
return 0; return 0;
} }
struct tree_opt_pass pass_compute_alignments = struct rtl_opt_pass pass_compute_alignments =
{ {
{
RTL_PASS,
"alignments", /* name */ "alignments", /* name */
NULL, /* gate */ NULL, /* gate */
compute_alignments, /* execute */ compute_alignments, /* execute */
@ -808,8 +810,8 @@ struct tree_opt_pass pass_compute_alignments =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing TODO_dump_func | TODO_verify_rtl_sharing
| TODO_ggc_collect, /* todo_flags_finish */ | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
@ -4169,8 +4171,10 @@ rest_of_handle_final (void)
return 0; return 0;
} }
struct tree_opt_pass pass_final = struct rtl_opt_pass pass_final =
{ {
{
RTL_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_final, /* execute */ rest_of_handle_final, /* execute */
@ -4182,8 +4186,8 @@ struct tree_opt_pass pass_final =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
@ -4195,8 +4199,10 @@ rest_of_handle_shorten_branches (void)
return 0; return 0;
} }
struct tree_opt_pass pass_shorten_branches = struct rtl_opt_pass pass_shorten_branches =
{ {
{
RTL_PASS,
"shorten", /* name */ "shorten", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_shorten_branches, /* execute */ rest_of_handle_shorten_branches, /* execute */
@ -4208,8 +4214,8 @@ struct tree_opt_pass pass_shorten_branches =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
@ -4277,8 +4283,10 @@ rest_of_clean_state (void)
return 0; return 0;
} }
struct tree_opt_pass pass_clean_state = struct rtl_opt_pass pass_clean_state =
{ {
{
RTL_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_clean_state, /* execute */ rest_of_clean_state, /* execute */
@ -4290,7 +4298,7 @@ struct tree_opt_pass pass_clean_state =
0, /* properties_provided */ 0, /* properties_provided */
PROP_rtl, /* properties_destroyed */ PROP_rtl, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1737,8 +1737,10 @@ instantiate_virtual_regs (void)
return 0; return 0;
} }
struct tree_opt_pass pass_instantiate_virtual_regs = struct rtl_opt_pass pass_instantiate_virtual_regs =
{ {
{
RTL_PASS,
"vregs", /* name */ "vregs", /* name */
NULL, /* gate */ NULL, /* gate */
instantiate_virtual_regs, /* execute */ instantiate_virtual_regs, /* execute */
@ -1750,8 +1752,8 @@ struct tree_opt_pass pass_instantiate_virtual_regs =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
@ -4042,8 +4044,10 @@ init_function_for_compilation (void)
return 0; return 0;
} }
struct tree_opt_pass pass_init_function = struct rtl_opt_pass pass_init_function =
{ {
{
RTL_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
init_function_for_compilation, /* execute */ init_function_for_compilation, /* execute */
@ -4055,8 +4059,8 @@ struct tree_opt_pass pass_init_function =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
@ -5595,8 +5599,10 @@ used_types_insert (tree t)
used_types_insert_helper (t, cfun); 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, /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_check_leaf_regs, /* execute */ rest_of_handle_check_leaf_regs, /* execute */
@ -5608,8 +5614,8 @@ struct tree_opt_pass pass_leaf_regs =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
static unsigned int static unsigned int
@ -5626,8 +5632,10 @@ rest_of_handle_thread_prologue_and_epilogue (void)
return 0; 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 */ "pro_and_epilogue", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_thread_prologue_and_epilogue, /* execute */ 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_dump_func |
TODO_df_verify | TODO_df_verify |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'w' /* letter */ }
}; };
@ -5823,8 +5831,10 @@ rest_of_match_asm_constraints (void)
return TODO_df_finish; return TODO_df_finish;
} }
struct tree_opt_pass pass_match_asm_constraints = struct rtl_opt_pass pass_match_asm_constraints =
{ {
{
RTL_PASS,
"asmcons", /* name */ "asmcons", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_match_asm_constraints, /* execute */ rest_of_match_asm_constraints, /* execute */
@ -5836,8 +5846,8 @@ struct tree_opt_pass pass_match_asm_constraints =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1021,8 +1021,10 @@ fwprop (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_fwprop = struct rtl_opt_pass pass_rtl_fwprop =
{ {
{
RTL_PASS,
"fwprop1", /* name */ "fwprop1", /* name */
gate_fwprop, /* gate */ gate_fwprop, /* gate */
fwprop, /* execute */ fwprop, /* execute */
@ -1035,8 +1037,8 @@ struct tree_opt_pass pass_rtl_fwprop =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
static unsigned int static unsigned int
@ -1063,8 +1065,10 @@ fwprop_addr (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_fwprop_addr = struct rtl_opt_pass pass_rtl_fwprop_addr =
{ {
{
RTL_PASS,
"fwprop2", /* name */ "fwprop2", /* name */
gate_fwprop, /* gate */ gate_fwprop, /* gate */
fwprop_addr, /* execute */ fwprop_addr, /* execute */
@ -1077,6 +1081,6 @@ struct tree_opt_pass pass_rtl_fwprop_addr =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -6691,8 +6691,10 @@ rest_of_handle_jump_bypass (void)
return 0; return 0;
} }
struct tree_opt_pass pass_jump_bypass = struct rtl_opt_pass pass_jump_bypass =
{ {
{
RTL_PASS,
"bypass", /* name */ "bypass", /* name */
gate_handle_jump_bypass, /* gate */ gate_handle_jump_bypass, /* gate */
rest_of_handle_jump_bypass, /* execute */ rest_of_handle_jump_bypass, /* execute */
@ -6705,8 +6707,8 @@ struct tree_opt_pass pass_jump_bypass =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect | TODO_verify_flow, /* todo_flags_finish */ TODO_ggc_collect | TODO_verify_flow /* todo_flags_finish */
'G' /* letter */ }
}; };
@ -6760,8 +6762,10 @@ rest_of_handle_gcse (void)
return 0; return 0;
} }
struct tree_opt_pass pass_gcse = struct rtl_opt_pass pass_gcse =
{ {
{
RTL_PASS,
"gcse1", /* name */ "gcse1", /* name */
gate_handle_gcse, /* gate */ gate_handle_gcse, /* gate */
rest_of_handle_gcse, /* execute */ rest_of_handle_gcse, /* execute */
@ -6775,8 +6779,8 @@ struct tree_opt_pass pass_gcse =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_verify_flow | TODO_ggc_collect, /* todo_flags_finish */ TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */
'G' /* letter */ }
}; };

View File

@ -148,8 +148,10 @@ lower_function_body (void)
return 0; return 0;
} }
struct tree_opt_pass pass_lower_cf = struct gimple_opt_pass pass_lower_cf =
{ {
{
GIMPLE_PASS,
"lower", /* name */ "lower", /* name */
NULL, /* gate */ NULL, /* gate */
lower_function_body, /* execute */ lower_function_body, /* execute */
@ -161,8 +163,8 @@ struct tree_opt_pass pass_lower_cf =
PROP_gimple_lcf, /* properties_provided */ PROP_gimple_lcf, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
@ -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 */ "blocks", /* name */
NULL, /* gate */ NULL, /* gate */
mark_used_blocks, /* execute */ mark_used_blocks, /* execute */
@ -803,6 +807,6 @@ struct tree_opt_pass pass_mark_used_blocks =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1783,7 +1783,7 @@ rest_of_handle_global_alloc (void)
failure = reload (get_insns (), 0); 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); timevar_push (TV_DUMP);
dump_global_regs (dump_file); dump_global_regs (dump_file);
@ -1817,8 +1817,10 @@ rest_of_handle_global_alloc (void)
return 0; return 0;
} }
struct tree_opt_pass pass_global_alloc = struct rtl_opt_pass pass_global_alloc =
{ {
{
RTL_PASS,
"greg", /* name */ "greg", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_global_alloc, /* execute */ rest_of_handle_global_alloc, /* execute */
@ -1831,7 +1833,7 @@ struct tree_opt_pass pass_global_alloc =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing TODO_dump_func | TODO_verify_rtl_sharing
| TODO_ggc_collect, /* todo_flags_finish */ | TODO_ggc_collect /* todo_flags_finish */
'g' /* letter */ }
}; };

View File

@ -4143,8 +4143,10 @@ rest_of_handle_if_conversion (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_ifcvt = struct rtl_opt_pass pass_rtl_ifcvt =
{ {
{
RTL_PASS,
"ce1", /* name */ "ce1", /* name */
gate_handle_if_conversion, /* gate */ gate_handle_if_conversion, /* gate */
rest_of_handle_if_conversion, /* execute */ rest_of_handle_if_conversion, /* execute */
@ -4157,8 +4159,8 @@ struct tree_opt_pass pass_rtl_ifcvt =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
'C' /* letter */ }
}; };
static bool static bool
@ -4178,8 +4180,10 @@ rest_of_handle_if_after_combine (void)
return 0; return 0;
} }
struct tree_opt_pass pass_if_after_combine = struct rtl_opt_pass pass_if_after_combine =
{ {
{
RTL_PASS,
"ce2", /* name */ "ce2", /* name */
gate_handle_if_after_combine, /* gate */ gate_handle_if_after_combine, /* gate */
rest_of_handle_if_after_combine, /* execute */ rest_of_handle_if_after_combine, /* execute */
@ -4193,8 +4197,8 @@ struct tree_opt_pass pass_if_after_combine =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'C' /* letter */ }
}; };
@ -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 */ "ce3", /* name */
gate_handle_if_after_reload, /* gate */ gate_handle_if_after_reload, /* gate */
rest_of_handle_if_after_reload, /* execute */ rest_of_handle_if_after_reload, /* execute */
@ -4228,6 +4234,6 @@ struct tree_opt_pass pass_if_after_reload =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'E' /* letter */ }
}; };

View File

@ -139,8 +139,10 @@ rest_of_handle_initialize_regs (void)
return 0; return 0;
} }
struct tree_opt_pass pass_initialize_regs = struct rtl_opt_pass pass_initialize_regs =
{ {
{
RTL_PASS,
"init-regs", /* name */ "init-regs", /* name */
gate_initialize_regs, /* gate */ gate_initialize_regs, /* gate */
rest_of_handle_initialize_regs, /* execute */ rest_of_handle_initialize_regs, /* execute */
@ -153,6 +155,6 @@ struct tree_opt_pass pass_initialize_regs =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_df_finish, /* todo_flags_finish */ TODO_df_finish /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -298,8 +298,10 @@ emit_initial_value_sets (void)
return 0; return 0;
} }
struct tree_opt_pass pass_initial_value_sets = struct rtl_opt_pass pass_initial_value_sets =
{ {
{
RTL_PASS,
"initvals", /* name */ "initvals", /* name */
NULL, /* gate */ NULL, /* gate */
emit_initial_value_sets, /* execute */ emit_initial_value_sets, /* execute */
@ -311,8 +313,8 @@ struct tree_opt_pass pass_initial_value_sets =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* If the backend knows where to allocate pseudos for hard /* If the backend knows where to allocate pseudos for hard

View File

@ -1136,7 +1136,10 @@ cgraph_gate_cp (void)
return flag_ipa_cp; return flag_ipa_cp;
} }
struct tree_opt_pass pass_ipa_cp = { struct simple_ipa_opt_pass pass_ipa_cp =
{
{
SIMPLE_IPA_PASS,
"cp", /* name */ "cp", /* name */
cgraph_gate_cp, /* gate */ cgraph_gate_cp, /* gate */
ipcp_driver, /* execute */ ipcp_driver, /* execute */
@ -1148,6 +1151,6 @@ struct tree_opt_pass pass_ipa_cp = {
PROP_trees, /* properties_provided */ PROP_trees, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_cgraph | TODO_dump_func, /* todo_flags_finish */ TODO_dump_cgraph | TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1426,8 +1426,10 @@ cgraph_gate_inlining (void)
return flag_inline_trees; return flag_inline_trees;
} }
struct tree_opt_pass pass_ipa_inline = struct simple_ipa_opt_pass pass_ipa_inline =
{ {
{
SIMPLE_IPA_PASS,
"inline", /* name */ "inline", /* name */
cgraph_gate_inlining, /* gate */ cgraph_gate_inlining, /* gate */
cgraph_decide_inlining, /* execute */ cgraph_decide_inlining, /* execute */
@ -1440,8 +1442,8 @@ struct tree_opt_pass pass_ipa_inline =
0, /* properties_destroyed */ 0, /* properties_destroyed */
TODO_remove_functions, /* todo_flags_finish */ TODO_remove_functions, /* todo_flags_finish */
TODO_dump_cgraph | TODO_dump_func TODO_dump_cgraph | TODO_dump_func
| TODO_remove_functions, /* todo_flags_finish */ | TODO_remove_functions /* todo_flags_finish */
0 /* letter */ }
}; };
/* Because inlining might remove no-longer reachable nodes, we need to /* 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; 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 */ "einline", /* name */
cgraph_gate_early_inlining, /* gate */ cgraph_gate_early_inlining, /* gate */
cgraph_early_inlining, /* execute */ cgraph_early_inlining, /* execute */
@ -1492,8 +1496,8 @@ struct tree_opt_pass pass_early_inline =
PROP_cfg, /* properties_provided */ PROP_cfg, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* When inlining shall be performed. */ /* 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 /* 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. */ 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 */ "einline_ipa", /* name */
cgraph_gate_ipa_early_inlining, /* gate */ cgraph_gate_ipa_early_inlining, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -1520,8 +1526,8 @@ struct tree_opt_pass pass_ipa_early_inline =
PROP_cfg, /* properties_provided */ PROP_cfg, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_cgraph, /* todo_flags_finish */ TODO_dump_cgraph /* todo_flags_finish */
0 /* letter */ }
}; };
/* Compute parameters of functions used by inliner. */ /* Compute parameters of functions used by inliner. */
@ -1554,8 +1560,10 @@ gate_inline_passes (void)
return flag_inline_trees; return flag_inline_trees;
} }
struct tree_opt_pass pass_inline_parameters = struct gimple_opt_pass pass_inline_parameters =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
gate_inline_passes, /* gate */ gate_inline_passes, /* gate */
compute_inline_parameters, /* execute */ compute_inline_parameters, /* execute */
@ -1567,8 +1575,8 @@ struct tree_opt_pass pass_inline_parameters =
PROP_cfg, /* properties_provided */ PROP_cfg, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Apply inline plan to the function. */ /* Apply inline plan to the function. */
@ -1609,8 +1617,10 @@ apply_inline (void)
return todo | execute_fixup_cfg (); return todo | execute_fixup_cfg ();
} }
struct tree_opt_pass pass_apply_inline = struct gimple_opt_pass pass_apply_inline =
{ {
{
GIMPLE_PASS,
"apply_inline", /* name */ "apply_inline", /* name */
NULL, /* gate */ NULL, /* gate */
apply_inline, /* execute */ apply_inline, /* execute */
@ -1623,8 +1633,8 @@ struct tree_opt_pass pass_apply_inline =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_flow TODO_dump_func | TODO_verify_flow
| TODO_verify_stmts, /* todo_flags_finish */ | TODO_verify_stmts /* todo_flags_finish */
0 /* letter */ }
}; };
#include "gt-ipa-inline.h" #include "gt-ipa-inline.h"

View File

@ -769,8 +769,10 @@ gate_pure_const (void)
&& !(errorcount || sorrycount)); && !(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 */ "pure-const", /* name */
gate_pure_const, /* gate */ gate_pure_const, /* gate */
static_execute, /* execute */ static_execute, /* execute */
@ -782,8 +784,8 @@ struct tree_opt_pass pass_ipa_pure_const =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1319,8 +1319,10 @@ gate_reference (void)
&& !(errorcount || sorrycount)); && !(errorcount || sorrycount));
} }
struct tree_opt_pass pass_ipa_reference = struct simple_ipa_opt_pass pass_ipa_reference =
{ {
{
SIMPLE_IPA_PASS,
"static-var", /* name */ "static-var", /* name */
gate_reference, /* gate */ gate_reference, /* gate */
static_execute, /* execute */ static_execute, /* execute */
@ -1332,8 +1334,8 @@ struct tree_opt_pass pass_ipa_reference =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
#include "gt-ipa-reference.h" #include "gt-ipa-reference.h"

View File

@ -4038,8 +4038,10 @@ struct_reorg_gate (void)
&& (optimize > 0); && (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 */ "ipa_struct_reorg", /* name */
struct_reorg_gate, /* gate */ struct_reorg_gate, /* gate */
reorg_structs_drive, /* execute */ reorg_structs_drive, /* execute */
@ -4051,6 +4053,6 @@ struct tree_opt_pass pass_ipa_struct_reorg =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
TODO_verify_ssa, /* todo_flags_start */ TODO_verify_ssa, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -2196,8 +2196,10 @@ gate_type_escape_vars (void)
&& !(errorcount || sorrycount)); && !(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 */ "type-escape-var", /* name */
gate_type_escape_vars, /* gate */ gate_type_escape_vars, /* gate */
type_escape_execute, /* execute */ type_escape_execute, /* execute */
@ -2209,7 +2211,7 @@ struct tree_opt_pass pass_ipa_type_escape =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -278,8 +278,10 @@ function_and_variable_visibility (void)
return 0; 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 */ "visibility", /* name */
NULL, /* gate */ NULL, /* gate */
function_and_variable_visibility, /* execute */ function_and_variable_visibility, /* execute */
@ -291,6 +293,6 @@ struct tree_opt_pass pass_ipa_function_and_variable_visibility =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_remove_functions | TODO_dump_cgraph,/* todo_flags_finish */ TODO_remove_functions | TODO_dump_cgraph/* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -122,8 +122,10 @@ cleanup_barriers (void)
return 0; return 0;
} }
struct tree_opt_pass pass_cleanup_barriers = struct rtl_opt_pass pass_cleanup_barriers =
{ {
{
RTL_PASS,
"barriers", /* name */ "barriers", /* name */
NULL, /* gate */ NULL, /* gate */
cleanup_barriers, /* execute */ cleanup_barriers, /* execute */
@ -135,8 +137,8 @@ struct tree_opt_pass pass_cleanup_barriers =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -2632,8 +2632,10 @@ rest_of_handle_local_alloc (void)
return 0; return 0;
} }
struct tree_opt_pass pass_local_alloc = struct rtl_opt_pass pass_local_alloc =
{ {
{
RTL_PASS,
"lreg", /* name */ "lreg", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_local_alloc, /* execute */ rest_of_handle_local_alloc, /* execute */
@ -2646,7 +2648,7 @@ struct tree_opt_pass pass_local_alloc =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'l' /* letter */ }
}; };

View File

@ -140,8 +140,10 @@ gate_handle_loop2 (void)
)); ));
} }
struct tree_opt_pass pass_loop2 = struct rtl_opt_pass pass_loop2 =
{ {
{
RTL_PASS,
"loop2", /* name */ "loop2", /* name */
gate_handle_loop2, /* gate */ gate_handle_loop2, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -154,8 +156,8 @@ struct tree_opt_pass pass_loop2 =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'L' /* letter */ }
}; };
@ -172,8 +174,10 @@ rtl_loop_init (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_loop_init = struct rtl_opt_pass pass_rtl_loop_init =
{ {
{
RTL_PASS,
"loop2_init", /* name */ "loop2_init", /* name */
NULL, /* gate */ NULL, /* gate */
rtl_loop_init, /* execute */ rtl_loop_init, /* execute */
@ -185,8 +189,8 @@ struct tree_opt_pass pass_rtl_loop_init =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */
'L' /* letter */ }
}; };
@ -205,8 +209,10 @@ rtl_loop_done (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_loop_done = struct rtl_opt_pass pass_rtl_loop_done =
{ {
{
RTL_PASS,
"loop2_done", /* name */ "loop2_done", /* name */
NULL, /* gate */ NULL, /* gate */
rtl_loop_done, /* execute */ rtl_loop_done, /* execute */
@ -218,8 +224,8 @@ struct tree_opt_pass pass_rtl_loop_done =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */
'L' /* letter */ }
}; };
@ -238,8 +244,10 @@ rtl_move_loop_invariants (void)
return 0; 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 */ "loop2_invariant", /* name */
gate_rtl_move_loop_invariants, /* gate */ gate_rtl_move_loop_invariants, /* gate */
rtl_move_loop_invariants, /* execute */ rtl_move_loop_invariants, /* execute */
@ -253,8 +261,8 @@ struct tree_opt_pass pass_rtl_move_loop_invariants =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_verify | TODO_df_verify |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
'L' /* letter */ }
}; };
@ -273,8 +281,10 @@ rtl_unswitch (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_unswitch = struct rtl_opt_pass pass_rtl_unswitch =
{ {
{
RTL_PASS,
"loop2_unswitch", /* name */ "loop2_unswitch", /* name */
gate_rtl_unswitch, /* gate */ gate_rtl_unswitch, /* gate */
rtl_unswitch, /* execute */ rtl_unswitch, /* execute */
@ -287,7 +297,7 @@ struct tree_opt_pass pass_rtl_unswitch =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
'L' /* letter */ }
}; };
@ -319,8 +329,10 @@ rtl_unroll_and_peel_loops (void)
return 0; 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 */ "loop2_unroll", /* name */
gate_rtl_unroll_and_peel_loops, /* gate */ gate_rtl_unroll_and_peel_loops, /* gate */
rtl_unroll_and_peel_loops, /* execute */ rtl_unroll_and_peel_loops, /* execute */
@ -333,7 +345,7 @@ struct tree_opt_pass pass_rtl_unroll_and_peel_loops =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
'L' /* letter */ }
}; };
@ -358,8 +370,10 @@ rtl_doloop (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_doloop = struct rtl_opt_pass pass_rtl_doloop =
{ {
{
RTL_PASS,
"loop2_doloop", /* name */ "loop2_doloop", /* name */
gate_rtl_doloop, /* gate */ gate_rtl_doloop, /* gate */
rtl_doloop, /* execute */ rtl_doloop, /* execute */
@ -371,7 +385,7 @@ struct tree_opt_pass pass_rtl_doloop =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */
'L' /* letter */ }
}; };

View File

@ -1425,8 +1425,10 @@ rest_of_handle_lower_subreg2 (void)
return 0; return 0;
} }
struct tree_opt_pass pass_lower_subreg = struct rtl_opt_pass pass_lower_subreg =
{ {
{
RTL_PASS,
"subreg", /* name */ "subreg", /* name */
gate_handle_lower_subreg, /* gate */ gate_handle_lower_subreg, /* gate */
rest_of_handle_lower_subreg, /* execute */ rest_of_handle_lower_subreg, /* execute */
@ -1440,12 +1442,14 @@ struct tree_opt_pass pass_lower_subreg =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect | TODO_ggc_collect |
TODO_verify_flow, /* todo_flags_finish */ TODO_verify_flow /* todo_flags_finish */
'u' /* letter */ }
}; };
struct tree_opt_pass pass_lower_subreg2 = struct rtl_opt_pass pass_lower_subreg2 =
{ {
{
RTL_PASS,
"subreg2", /* name */ "subreg2", /* name */
gate_handle_lower_subreg, /* gate */ gate_handle_lower_subreg, /* gate */
rest_of_handle_lower_subreg2, /* execute */ 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_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect | TODO_ggc_collect |
TODO_verify_flow, /* todo_flags_finish */ TODO_verify_flow /* todo_flags_finish */
'U' /* letter */ }
}; };

View File

@ -2317,7 +2317,10 @@ gate_matrix_reorg (void)
return flag_ipa_matrix_reorg && flag_whole_program; 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 */ "matrix-reorg", /* name */
gate_matrix_reorg, /* gate */ gate_matrix_reorg, /* gate */
matrix_reorg, /* execute */ matrix_reorg, /* execute */
@ -2329,6 +2332,6 @@ struct tree_opt_pass pass_ipa_matrix_reorg = {
PROP_trees, /* properties_provided */ PROP_trees, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_cgraph | TODO_dump_func, /* todo_flags_finish */ TODO_dump_cgraph | TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -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 */ "mode-sw", /* name */
gate_mode_switching, /* gate */ gate_mode_switching, /* gate */
rest_of_handle_mode_switching, /* execute */ rest_of_handle_mode_switching, /* execute */
@ -770,6 +772,6 @@ struct tree_opt_pass pass_mode_switching =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -2871,8 +2871,10 @@ rest_of_handle_sms (void)
return 0; return 0;
} }
struct tree_opt_pass pass_sms = struct rtl_opt_pass pass_sms =
{ {
{
RTL_PASS,
"sms", /* name */ "sms", /* name */
gate_handle_sms, /* gate */ gate_handle_sms, /* gate */
rest_of_handle_sms, /* execute */ rest_of_handle_sms, /* execute */
@ -2886,7 +2888,7 @@ struct tree_opt_pass pass_sms =
TODO_dump_func, /* todo_flags_start */ TODO_dump_func, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'm' /* letter */ }
}; };

View File

@ -4195,8 +4195,10 @@ gate_expand_omp_ssa (void)
return flag_openmp_ssa && flag_openmp != 0 && errorcount == 0; 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 */ "ompexpssa", /* name */
gate_expand_omp_ssa, /* gate */ gate_expand_omp_ssa, /* gate */
execute_expand_omp, /* execute */ execute_expand_omp, /* execute */
@ -4208,8 +4210,8 @@ struct tree_opt_pass pass_expand_omp_ssa =
PROP_gimple_lomp, /* properties_provided */ PROP_gimple_lomp, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* OMP expansion -- the default pass, run before creation of SSA form. */ /* OMP expansion -- the default pass, run before creation of SSA form. */
@ -4221,8 +4223,10 @@ gate_expand_omp (void)
&& flag_openmp != 0 && errorcount == 0); && flag_openmp != 0 && errorcount == 0);
} }
struct tree_opt_pass pass_expand_omp = struct gimple_opt_pass pass_expand_omp =
{ {
{
GIMPLE_PASS,
"ompexp", /* name */ "ompexp", /* name */
gate_expand_omp, /* gate */ gate_expand_omp, /* gate */
execute_expand_omp, /* execute */ execute_expand_omp, /* execute */
@ -4234,8 +4238,8 @@ struct tree_opt_pass pass_expand_omp =
PROP_gimple_lomp, /* properties_provided */ PROP_gimple_lomp, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* Routines to lower OpenMP directives into OMP-GIMPLE. */ /* Routines to lower OpenMP directives into OMP-GIMPLE. */
@ -5081,8 +5085,10 @@ gate_lower_omp (void)
return flag_openmp != 0; return flag_openmp != 0;
} }
struct tree_opt_pass pass_lower_omp = struct gimple_opt_pass pass_lower_omp =
{ {
{
GIMPLE_PASS,
"omplower", /* name */ "omplower", /* name */
gate_lower_omp, /* gate */ gate_lower_omp, /* gate */
execute_lower_omp, /* execute */ execute_lower_omp, /* execute */
@ -5094,8 +5100,8 @@ struct tree_opt_pass pass_lower_omp =
PROP_gimple_lomp, /* properties_provided */ PROP_gimple_lomp, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* The following is a utility to diagnose OpenMP structured block violations. /* The following is a utility to diagnose OpenMP structured block violations.

View File

@ -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 /* This is used for debugging. It allows the current pass to printed
from anywhere in compilation. */ 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 /* Call from anywhere to find out what pass this is. Useful for
printing out debugging information deep inside an service printing out debugging information deep inside an service
@ -246,19 +246,19 @@ finish_optimization_passes (void)
timevar_push (TV_DUMP); timevar_push (TV_DUMP);
if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) 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 (); end_branch_prob ();
if (dump_file) 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) 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) if (dump_file)
{ {
dump_combine_total_stats (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); 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 */ NULL, /* name */
gate_rest_of_compilation, /* gate */ gate_rest_of_compilation, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -297,8 +299,8 @@ struct tree_opt_pass pass_rest_of_compilation =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
static bool static bool
@ -307,8 +309,10 @@ gate_postreload (void)
return reload_completed; return reload_completed;
} }
struct tree_opt_pass pass_postreload = struct rtl_opt_pass pass_postreload =
{ {
{
RTL_PASS,
NULL, /* name */ NULL, /* name */
gate_postreload, /* gate */ gate_postreload, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -320,21 +324,21 @@ struct tree_opt_pass pass_postreload =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_ggc_collect | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_ggc_collect | TODO_verify_rtl_sharing /* todo_flags_finish */
0 /* letter */ }
}; };
/* The root of the compilation pass tree, once constructed. */ /* 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 /* Iterate over the pass tree allocating dump file numbers. We want
to do this depth first, and independent of whether the pass is to do this depth first, and independent of whether the pass is
enabled or not. */ enabled or not. */
static void 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; char *dot_name, *flag_name, *glob_name;
const char *prefix; 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); flag_name = concat (prefix, pass->name, num, NULL);
glob_name = concat (prefix, pass->name, NULL); glob_name = concat (prefix, pass->name, NULL);
pass->static_pass_number = dump_register (dot_name, flag_name, glob_name, pass->static_pass_number = dump_register (dot_name, flag_name, glob_name,
flags, pass->letter); flags);
} }
/* Recursive worker function for register_dump_files. */ /* Recursive worker function for register_dump_files. */
static int 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 do
{ {
@ -398,7 +402,7 @@ register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties)
the pipeline. */ the pipeline. */
static void 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; pass->properties_required |= properties;
register_dump_files_1 (pass, ipa, 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 /* Add a pass to the pass list. Duplicate the pass if it's already
in the list. */ in the list. */
static struct tree_opt_pass ** static struct opt_pass **
next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass) next_pass_1 (struct opt_pass **list, struct opt_pass *pass)
{ {
/* A nonzero static_pass_number indicates that the /* A nonzero static_pass_number indicates that the
pass is already in the list. */ pass is already in the list. */
if (pass->static_pass_number) if (pass->static_pass_number)
{ {
struct tree_opt_pass *new; struct opt_pass *new;
new = xmalloc (sizeof (*new)); new = xmalloc (sizeof (*new));
memcpy (new, pass, 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 void
init_optimization_passes (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 /* All passes needed to lower the function into shape optimizers can
operate on. These passes are always run first on the function, but 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_function_and_variable_visibility);
NEXT_PASS (pass_ipa_early_inline); 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_early_inline);
NEXT_PASS (pass_inline_parameters); NEXT_PASS (pass_inline_parameters);
NEXT_PASS (pass_rebuild_cgraph_edges); NEXT_PASS (pass_rebuild_cgraph_edges);
} }
NEXT_PASS (pass_early_local_passes); 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_tree_profile);
NEXT_PASS (pass_cleanup_cfg); NEXT_PASS (pass_cleanup_cfg);
NEXT_PASS (pass_init_datastructures); NEXT_PASS (pass_init_datastructures);
NEXT_PASS (pass_expand_omp); NEXT_PASS (pass_expand_omp);
NEXT_PASS (pass_all_early_optimizations); 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_referenced_vars);
NEXT_PASS (pass_reset_cc_flags); NEXT_PASS (pass_reset_cc_flags);
NEXT_PASS (pass_build_ssa); NEXT_PASS (pass_build_ssa);
@ -555,7 +559,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_apply_inline); NEXT_PASS (pass_apply_inline);
NEXT_PASS (pass_all_optimizations); 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); NEXT_PASS (pass_create_structure_vars);
/* ??? pass_build_alias is a dummy pass that ensures that we /* ??? pass_build_alias is a dummy pass that ensures that we
execute TODO_rebuild_alias at this point even if 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_sink_code);
NEXT_PASS (pass_tree_loop); 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_tree_loop_init);
NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_copy_prop);
NEXT_PASS (pass_dce_loop); NEXT_PASS (pass_dce_loop);
@ -631,7 +635,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_if_conversion); NEXT_PASS (pass_if_conversion);
NEXT_PASS (pass_vectorize); 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_lower_vector_ssa);
NEXT_PASS (pass_dce_loop); NEXT_PASS (pass_dce_loop);
} }
@ -685,7 +689,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_expand); NEXT_PASS (pass_expand);
NEXT_PASS (pass_rest_of_compilation); 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_init_function);
NEXT_PASS (pass_jump); NEXT_PASS (pass_jump);
NEXT_PASS (pass_rtl_eh); NEXT_PASS (pass_rtl_eh);
@ -705,7 +709,7 @@ init_optimization_passes (void)
efficiently. */ efficiently. */
NEXT_PASS (pass_loop2); 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_loop_init);
NEXT_PASS (pass_rtl_move_loop_invariants); NEXT_PASS (pass_rtl_move_loop_invariants);
NEXT_PASS (pass_rtl_unswitch); NEXT_PASS (pass_rtl_unswitch);
@ -743,7 +747,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_subregs_of_mode_finish); NEXT_PASS (pass_subregs_of_mode_finish);
NEXT_PASS (pass_postreload); 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_postreload_cse);
NEXT_PASS (pass_gcse2); NEXT_PASS (pass_gcse2);
NEXT_PASS (pass_split_after_reload); NEXT_PASS (pass_split_after_reload);
@ -764,7 +768,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_sched2); NEXT_PASS (pass_sched2);
NEXT_PASS (pass_stack_regs); 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_split_before_regstack);
NEXT_PASS (pass_stack_regs_run); NEXT_PASS (pass_stack_regs_run);
} }
@ -1056,13 +1060,13 @@ verify_curr_properties (void *data)
static void static void
update_properties_after_pass (void *data) 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) cfun->curr_properties = (cfun->curr_properties | pass->properties_provided)
& ~pass->properties_destroyed; & ~pass->properties_destroyed;
} }
static bool static bool
execute_one_pass (struct tree_opt_pass *pass) execute_one_pass (struct opt_pass *pass)
{ {
bool initializing_dump; bool initializing_dump;
unsigned int todo_after = 0; unsigned int todo_after = 0;
@ -1169,7 +1173,7 @@ execute_one_pass (struct tree_opt_pass *pass)
} }
void void
execute_pass_list (struct tree_opt_pass *pass) execute_pass_list (struct opt_pass *pass)
{ {
do 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 /* Same as execute_pass_list but assume that subpasses of IPA passes
are local passes. */ are local passes. */
void void
execute_ipa_pass_list (struct tree_opt_pass *pass) execute_ipa_pass_list (struct opt_pass *pass)
{ {
do do
{ {

View File

@ -1318,8 +1318,10 @@ rest_of_handle_gcse2 (void)
return 0; return 0;
} }
struct tree_opt_pass pass_gcse2 = struct rtl_opt_pass pass_gcse2 =
{ {
{
RTL_PASS,
"gcse2", /* name */ "gcse2", /* name */
gate_handle_gcse2, /* gate */ gate_handle_gcse2, /* gate */
rest_of_handle_gcse2, /* execute */ rest_of_handle_gcse2, /* execute */
@ -1332,7 +1334,7 @@ struct tree_opt_pass pass_gcse2 =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing TODO_dump_func | TODO_verify_rtl_sharing
| TODO_verify_flow | TODO_ggc_collect,/* todo_flags_finish */ | TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */
'J' /* letter */ }
}; };

View File

@ -1585,8 +1585,10 @@ rest_of_handle_postreload (void)
return 0; return 0;
} }
struct tree_opt_pass pass_postreload_cse = struct rtl_opt_pass pass_postreload_cse =
{ {
{
RTL_PASS,
"postreload", /* name */ "postreload", /* name */
gate_handle_postreload, /* gate */ gate_handle_postreload, /* gate */
rest_of_handle_postreload, /* execute */ rest_of_handle_postreload, /* execute */
@ -1599,7 +1601,7 @@ struct tree_opt_pass pass_postreload_cse =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
'o' /* letter */ }
}; };

View File

@ -1939,8 +1939,10 @@ predictor_name (enum br_predictor predictor)
return predictor_info[predictor].name; return predictor_info[predictor].name;
} }
struct tree_opt_pass pass_profile = struct gimple_opt_pass pass_profile =
{ {
{
GIMPLE_PASS,
"profile", /* name */ "profile", /* name */
gate_estimate_probability, /* gate */ gate_estimate_probability, /* gate */
tree_estimate_probability, /* execute */ tree_estimate_probability, /* execute */
@ -1952,6 +1954,6 @@ struct tree_opt_pass pass_profile =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_ggc_collect | TODO_verify_ssa, /* todo_flags_finish */ TODO_ggc_collect | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -3312,8 +3312,10 @@ rest_of_handle_peephole2 (void)
return 0; return 0;
} }
struct tree_opt_pass pass_peephole2 = struct rtl_opt_pass pass_peephole2 =
{ {
{
RTL_PASS,
"peephole2", /* name */ "peephole2", /* name */
gate_handle_peephole2, /* gate */ gate_handle_peephole2, /* gate */
rest_of_handle_peephole2, /* execute */ rest_of_handle_peephole2, /* execute */
@ -3326,8 +3328,8 @@ struct tree_opt_pass pass_peephole2 =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
'z' /* letter */ }
}; };
static unsigned int static unsigned int
@ -3337,8 +3339,10 @@ rest_of_handle_split_all_insns (void)
return 0; return 0;
} }
struct tree_opt_pass pass_split_all_insns = struct rtl_opt_pass pass_split_all_insns =
{ {
{
RTL_PASS,
"split1", /* name */ "split1", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_split_all_insns, /* execute */ rest_of_handle_split_all_insns, /* execute */
@ -3350,8 +3354,8 @@ struct tree_opt_pass pass_split_all_insns =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
static unsigned int static unsigned int
@ -3365,8 +3369,10 @@ rest_of_handle_split_after_reload (void)
return 0; return 0;
} }
struct tree_opt_pass pass_split_after_reload = struct rtl_opt_pass pass_split_after_reload =
{ {
{
RTL_PASS,
"split2", /* name */ "split2", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_split_after_reload, /* execute */ rest_of_handle_split_after_reload, /* execute */
@ -3378,8 +3384,8 @@ struct tree_opt_pass pass_split_after_reload =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
static bool static bool
@ -3407,8 +3413,10 @@ rest_of_handle_split_before_regstack (void)
return 0; return 0;
} }
struct tree_opt_pass pass_split_before_regstack = struct rtl_opt_pass pass_split_before_regstack =
{ {
{
RTL_PASS,
"split3", /* name */ "split3", /* name */
gate_handle_split_before_regstack, /* gate */ gate_handle_split_before_regstack, /* gate */
rest_of_handle_split_before_regstack, /* execute */ rest_of_handle_split_before_regstack, /* execute */
@ -3420,8 +3428,8 @@ struct tree_opt_pass pass_split_before_regstack =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
static bool static bool
@ -3443,8 +3451,10 @@ rest_of_handle_split_before_sched2 (void)
return 0; return 0;
} }
struct tree_opt_pass pass_split_before_sched2 = struct rtl_opt_pass pass_split_before_sched2 =
{ {
{
RTL_PASS,
"split4", /* name */ "split4", /* name */
gate_handle_split_before_sched2, /* gate */ gate_handle_split_before_sched2, /* gate */
rest_of_handle_split_before_sched2, /* execute */ rest_of_handle_split_before_sched2, /* execute */
@ -3457,8 +3467,8 @@ struct tree_opt_pass pass_split_before_sched2 =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_verify_flow | TODO_verify_flow |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* The placement of the splitting that we do for shorten_branches /* The placement of the splitting that we do for shorten_branches
@ -3473,8 +3483,10 @@ gate_do_final_split (void)
#endif #endif
} }
struct tree_opt_pass pass_split_for_shorten_branches = struct rtl_opt_pass pass_split_for_shorten_branches =
{ {
{
RTL_PASS,
"split5", /* name */ "split5", /* name */
gate_do_final_split, /* gate */ gate_do_final_split, /* gate */
split_all_insns_noflow, /* execute */ split_all_insns_noflow, /* execute */
@ -3486,8 +3498,8 @@ struct tree_opt_pass pass_split_for_shorten_branches =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -3202,8 +3202,10 @@ gate_handle_stack_regs (void)
#endif #endif
} }
struct tree_opt_pass pass_stack_regs = struct rtl_opt_pass pass_stack_regs =
{ {
{
RTL_PASS,
NULL, /* name */ NULL, /* name */
gate_handle_stack_regs, /* gate */ gate_handle_stack_regs, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -3215,8 +3217,8 @@ struct tree_opt_pass pass_stack_regs =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Convert register usage from flat register file usage to a stack /* Convert register usage from flat register file usage to a stack
@ -3231,8 +3233,10 @@ rest_of_handle_stack_regs (void)
return 0; return 0;
} }
struct tree_opt_pass pass_stack_regs_run = struct rtl_opt_pass pass_stack_regs_run =
{ {
{
RTL_PASS,
"stack", /* name */ "stack", /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_stack_regs, /* execute */ rest_of_handle_stack_regs, /* execute */
@ -3246,6 +3250,6 @@ struct tree_opt_pass pass_stack_regs_run =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'k' /* letter */ }
}; };

View File

@ -1059,8 +1059,10 @@ regclass_init (void)
return 1; return 1;
} }
struct tree_opt_pass pass_regclass_init = struct rtl_opt_pass pass_regclass_init =
{ {
{
RTL_PASS,
"regclass", /* name */ "regclass", /* name */
NULL, /* gate */ NULL, /* gate */
regclass_init, /* execute */ regclass_init, /* execute */
@ -1072,8 +1074,8 @@ struct tree_opt_pass pass_regclass_init =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
'k' /* letter */ }
}; };
@ -2670,8 +2672,10 @@ gate_subregs_of_mode_init (void)
#endif #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 */ "subregs_of_mode_init", /* name */
gate_subregs_of_mode_init, /* gate */ gate_subregs_of_mode_init, /* gate */
init_subregs_of_mode, /* execute */ init_subregs_of_mode, /* execute */
@ -2683,12 +2687,14 @@ struct tree_opt_pass pass_subregs_of_mode_init =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
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 */ "subregs_of_mode_finish", /* name */
gate_subregs_of_mode_init, /* gate */ gate_subregs_of_mode_init, /* gate */
finish_subregs_of_mode, /* execute */ finish_subregs_of_mode, /* execute */
@ -2700,8 +2706,8 @@ struct tree_opt_pass pass_subregs_of_mode_finish =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -2135,8 +2135,10 @@ rest_of_handle_regmove (void)
return 0; return 0;
} }
struct tree_opt_pass pass_regmove = struct rtl_opt_pass pass_regmove =
{ {
{
RTL_PASS,
"regmove", /* name */ "regmove", /* name */
gate_handle_regmove, /* gate */ gate_handle_regmove, /* gate */
rest_of_handle_regmove, /* execute */ rest_of_handle_regmove, /* execute */
@ -2150,7 +2152,7 @@ struct tree_opt_pass pass_regmove =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'N' /* letter */ }
}; };

View File

@ -1938,8 +1938,10 @@ rest_of_handle_regrename (void)
return 0; return 0;
} }
struct tree_opt_pass pass_regrename = struct rtl_opt_pass pass_regrename =
{ {
{
RTL_PASS,
"rnreg", /* name */ "rnreg", /* name */
gate_handle_regrename, /* gate */ gate_handle_regrename, /* gate */
rest_of_handle_regrename, /* execute */ rest_of_handle_regrename, /* execute */
@ -1952,8 +1954,8 @@ struct tree_opt_pass pass_regrename =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
'n' /* letter */ }
}; };
static bool static bool
@ -1971,8 +1973,10 @@ rest_of_handle_cprop (void)
return 0; return 0;
} }
struct tree_opt_pass pass_cprop_hardreg = struct rtl_opt_pass pass_cprop_hardreg =
{ {
{
RTL_PASS,
"cprop_hardreg", /* name */ "cprop_hardreg", /* name */
gate_handle_cprop, /* gate */ gate_handle_cprop, /* gate */
rest_of_handle_cprop, /* execute */ rest_of_handle_cprop, /* execute */
@ -1984,7 +1988,7 @@ struct tree_opt_pass pass_cprop_hardreg =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */ TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */
'n' /* letter */ }
}; };

View File

@ -4066,8 +4066,10 @@ rest_of_handle_delay_slots (void)
return 0; return 0;
} }
struct tree_opt_pass pass_delay_slots = struct rtl_opt_pass pass_delay_slots =
{ {
{
RTL_PASS,
"dbr", /* name */ "dbr", /* name */
gate_handle_delay_slots, /* gate */ gate_handle_delay_slots, /* gate */
rest_of_handle_delay_slots, /* execute */ rest_of_handle_delay_slots, /* execute */
@ -4080,8 +4082,8 @@ struct tree_opt_pass pass_delay_slots =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'd' /* letter */ }
}; };
/* Machine dependent reorg pass. */ /* Machine dependent reorg pass. */
@ -4099,8 +4101,10 @@ rest_of_handle_machine_reorg (void)
return 0; return 0;
} }
struct tree_opt_pass pass_machine_reorg = struct rtl_opt_pass pass_machine_reorg =
{ {
{
RTL_PASS,
"mach", /* name */ "mach", /* name */
gate_handle_machine_reorg, /* gate */ gate_handle_machine_reorg, /* gate */
rest_of_handle_machine_reorg, /* execute */ rest_of_handle_machine_reorg, /* execute */
@ -4113,6 +4117,6 @@ struct tree_opt_pass pass_machine_reorg =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'M' /* letter */ }
}; };

View File

@ -1428,7 +1428,10 @@ rest_of_rtl_seqabstr (void)
return 0; return 0;
} }
struct tree_opt_pass pass_rtl_seqabstr = { struct rtl_opt_pass pass_rtl_seqabstr =
{
{
RTL_PASS,
"seqabstr", /* name */ "seqabstr", /* name */
gate_rtl_seqabstr, /* gate */ gate_rtl_seqabstr, /* gate */
rest_of_rtl_seqabstr, /* execute */ rest_of_rtl_seqabstr, /* execute */
@ -1442,6 +1445,6 @@ struct tree_opt_pass pass_rtl_seqabstr = {
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'Q' /* letter */ }
}; };

View File

@ -3192,8 +3192,10 @@ rest_of_handle_sched2 (void)
return 0; return 0;
} }
struct tree_opt_pass pass_sched = struct rtl_opt_pass pass_sched =
{ {
{
RTL_PASS,
"sched1", /* name */ "sched1", /* name */
gate_handle_sched, /* gate */ gate_handle_sched, /* gate */
rest_of_handle_sched, /* execute */ rest_of_handle_sched, /* execute */
@ -3208,12 +3210,14 @@ struct tree_opt_pass pass_sched =
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_verify_flow | TODO_verify_flow |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'S' /* letter */ }
}; };
struct tree_opt_pass pass_sched2 = struct rtl_opt_pass pass_sched2 =
{ {
{
RTL_PASS,
"sched2", /* name */ "sched2", /* name */
gate_handle_sched2, /* gate */ gate_handle_sched2, /* gate */
rest_of_handle_sched2, /* execute */ rest_of_handle_sched2, /* execute */
@ -3228,7 +3232,7 @@ struct tree_opt_pass pass_sched2 =
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func | TODO_dump_func |
TODO_verify_flow | TODO_verify_flow |
TODO_ggc_collect, /* todo_flags_finish */ TODO_ggc_collect /* todo_flags_finish */
'R' /* letter */ }
}; };

View File

@ -3859,8 +3859,10 @@ rest_of_handle_see (void)
return 0; return 0;
} }
struct tree_opt_pass pass_see = struct rtl_opt_pass pass_see =
{ {
{
RTL_PASS,
"see", /* name */ "see", /* name */
gate_handle_see, /* gate */ gate_handle_see, /* gate */
rest_of_handle_see, /* execute */ rest_of_handle_see, /* execute */
@ -3874,7 +3876,7 @@ struct tree_opt_pass pass_see =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_df_verify | TODO_df_verify |
TODO_df_finish | TODO_verify_rtl_sharing | TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
'u' /* letter */ }
}; };

View File

@ -91,8 +91,10 @@ rest_of_handle_stack_ptr_mod (void)
return 0; return 0;
} }
struct tree_opt_pass pass_stack_ptr_mod = struct rtl_opt_pass pass_stack_ptr_mod =
{ {
{
RTL_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
rest_of_handle_stack_ptr_mod, /* execute */ rest_of_handle_stack_ptr_mod, /* execute */
@ -104,6 +106,6 @@ struct tree_opt_pass pass_stack_ptr_mod =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -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> 2008-03-19 Richard Guenther <rguenther@suse.de>
PR middle-end/35609 PR middle-end/35609

View File

@ -1,6 +1,6 @@
/* Test whether -dav doesn't crash. */ /* Test whether -dv -fdump-rtl-all doesn't crash. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -dav" } */ /* { dg-options "-O2 -dv -fdump-rtl-all" } */
int foo (void) int foo (void)
{ {

View File

@ -1,6 +1,6 @@
/* Test whether -dov doesn't crash. */ /* Test whether -dov doesn't crash. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -dov" } */ /* { dg-options "-O2 -dv -fdump-rtl-postreload" } */
int foo (void) int foo (void)
{ {

View File

@ -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 "(^|\\n)#define foo bar($|\\n)" } }
{ dg-final { scan-file-not cmdlne-dI-M.i "variable" } } { 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" } } */

View File

@ -12,4 +12,4 @@ int variable;
/* { dg-final { scan-file cmdlne-dM-M.i "(^|\\n)#define foo bar($|\\n)" } } /* { 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-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"} } */

View File

@ -6,7 +6,7 @@
they can not co-exist; also under -funsafe-math-optimizations, so we they can not co-exist; also under -funsafe-math-optimizations, so we
expect it to fail. */ expect it to fail. */
/* { dg-require-effective-target hard_float } */ /* { 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 abort (void);
extern void exit (int); extern void exit (int);

View File

@ -2,7 +2,7 @@
traversal of the loops after versioning. */ traversal of the loops after versioning. */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-options "-O2 -fmodulo-sched -dm" } */ /* { dg-options "-O2 -fmodulo-sched -fdump-rtl-sms" } */
void void

View File

@ -2,7 +2,7 @@
/* We don't (and don't want to) perform this optimisation on soft-float /* We don't (and don't want to) perform this optimisation on soft-float
targets, where each addition is a library call. */ targets, where each addition is a library call. */
/* { dg-require-effective-target hard_float } */ /* { 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); extern void abort (void);

View File

@ -1,5 +1,5 @@
/* { dg-do run { target { powerpc*-*-* && powerpc_altivec_ok } } }} */ /* { 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" #include "altivec.h"
extern void abort (void); extern void abort (void);

View File

@ -1062,6 +1062,8 @@ decode_d_option (const char *arg)
break; break;
case 'D': /* These are handled by the preprocessor. */ case 'D': /* These are handled by the preprocessor. */
case 'I': case 'I':
case 'M':
case 'N':
break; break;
case 'H': case 'H':
setup_core_dumping(); setup_core_dumping();

View File

@ -378,8 +378,10 @@ gate_tracer (void)
return (optimize > 0 && flag_tracer && flag_reorder_blocks); return (optimize > 0 && flag_tracer && flag_reorder_blocks);
} }
struct tree_opt_pass pass_tracer = struct gimple_opt_pass pass_tracer =
{ {
{
GIMPLE_PASS,
"tracer", /* name */ "tracer", /* name */
gate_tracer, /* gate */ gate_tracer, /* gate */
tracer, /* execute */ tracer, /* execute */
@ -393,6 +395,6 @@ struct tree_opt_pass pass_tracer =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func TODO_dump_func
| TODO_update_ssa | TODO_update_ssa
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
'T' /* letter */ }
}; };

View File

@ -212,8 +212,10 @@ execute_build_cfg (void)
return 0; return 0;
} }
struct tree_opt_pass pass_build_cfg = struct gimple_opt_pass pass_build_cfg =
{ {
{
GIMPLE_PASS,
"cfg", /* name */ "cfg", /* name */
NULL, /* gate */ NULL, /* gate */
execute_build_cfg, /* execute */ execute_build_cfg, /* execute */
@ -225,8 +227,8 @@ struct tree_opt_pass pass_build_cfg =
PROP_cfg, /* properties_provided */ PROP_cfg, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_verify_stmts | TODO_cleanup_cfg, /* todo_flags_finish */ TODO_verify_stmts | TODO_cleanup_cfg /* todo_flags_finish */
0 /* letter */ }
}; };
/* Search the CFG for any computed gotos. If found, factor them to a /* 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 */ "useless", /* name */
NULL, /* gate */ NULL, /* gate */
remove_useless_stmts, /* execute */ remove_useless_stmts, /* execute */
@ -1946,8 +1950,8 @@ struct tree_opt_pass pass_remove_useless_stmts =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* Remove PHI nodes associated with basic block BB and all edges out of BB. */ /* Remove PHI nodes associated with basic block BB and all edges out of BB. */
@ -6898,8 +6902,10 @@ split_critical_edges (void)
return 0; return 0;
} }
struct tree_opt_pass pass_split_crit_edges = struct gimple_opt_pass pass_split_crit_edges =
{ {
{
GIMPLE_PASS,
"crited", /* name */ "crited", /* name */
NULL, /* gate */ NULL, /* gate */
split_critical_edges, /* execute */ split_critical_edges, /* execute */
@ -6911,8 +6917,8 @@ struct tree_opt_pass pass_split_crit_edges =
PROP_no_crit_edges, /* properties_provided */ PROP_no_crit_edges, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
@ -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, /* name */
NULL, /* gate */ NULL, /* gate */
execute_warn_function_return, /* execute */ execute_warn_function_return, /* execute */
@ -7081,8 +7089,8 @@ struct tree_opt_pass pass_warn_function_return =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Emit noreturn warnings. */ /* Emit noreturn warnings. */
@ -7100,8 +7108,10 @@ execute_warn_function_noreturn (void)
return 0; return 0;
} }
struct tree_opt_pass pass_warn_function_noreturn = struct gimple_opt_pass pass_warn_function_noreturn =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
execute_warn_function_noreturn, /* execute */ execute_warn_function_noreturn, /* execute */
@ -7113,6 +7123,6 @@ struct tree_opt_pass pass_warn_function_noreturn =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -930,7 +930,10 @@ gate_merge_phi (void)
return 1; return 1;
} }
struct tree_opt_pass pass_merge_phi = { struct gimple_opt_pass pass_merge_phi =
{
{
GIMPLE_PASS,
"mergephi", /* name */ "mergephi", /* name */
gate_merge_phi, /* gate */ gate_merge_phi, /* gate */
merge_phi_nodes, /* execute */ merge_phi_nodes, /* execute */
@ -943,6 +946,6 @@ struct tree_opt_pass pass_merge_phi = {
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_ggc_collect /* todo_flags_finish */ TODO_dump_func | TODO_ggc_collect /* todo_flags_finish */
| TODO_verify_ssa, | TODO_verify_ssa
0 /* letter */ }
}; };

View File

@ -1534,8 +1534,10 @@ tree_lower_complex (void)
return 0; return 0;
} }
struct tree_opt_pass pass_lower_complex = struct gimple_opt_pass pass_lower_complex =
{ {
{
GIMPLE_PASS,
"cplxlower", /* name */ "cplxlower", /* name */
0, /* gate */ 0, /* gate */
tree_lower_complex, /* execute */ tree_lower_complex, /* execute */
@ -1550,8 +1552,8 @@ struct tree_opt_pass pass_lower_complex =
TODO_dump_func TODO_dump_func
| TODO_ggc_collect | TODO_ggc_collect
| TODO_update_ssa | TODO_update_ssa
| TODO_verify_stmts, /* todo_flags_finish */ | TODO_verify_stmts /* todo_flags_finish */
0 /* letter */ }
}; };
@ -1582,8 +1584,10 @@ gate_no_optimization (void)
return optimize == 0 || sorrycount || errorcount; 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 */ "cplxlower0", /* name */
gate_no_optimization, /* gate */ gate_no_optimization, /* gate */
tree_lower_complex_O0, /* execute */ tree_lower_complex_O0, /* execute */
@ -1597,5 +1601,5 @@ struct tree_opt_pass pass_lower_complex_O0 =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_ggc_collect TODO_dump_func | TODO_ggc_collect
| TODO_verify_stmts, /* todo_flags_finish */ | TODO_verify_stmts, /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -96,8 +96,10 @@ find_referenced_vars (void)
return 0; return 0;
} }
struct tree_opt_pass pass_referenced_vars = struct gimple_opt_pass pass_referenced_vars =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
find_referenced_vars, /* execute */ find_referenced_vars, /* execute */
@ -109,8 +111,8 @@ struct tree_opt_pass pass_referenced_vars =
PROP_referenced_vars, /* properties_provided */ PROP_referenced_vars, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -831,7 +831,7 @@ static const struct dump_option_value_info dump_options[] =
unsigned int unsigned int
dump_register (const char *suffix, const char *swtch, const char *glob, 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; static int next_dump = FIRST_AUTO_NUMBERED_DUMP;
int num = next_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].glob = glob;
extra_dump_files[this].flags = flags; extra_dump_files[this].flags = flags;
extra_dump_files[this].num = num; extra_dump_files[this].num = num;
extra_dump_files[this].letter = letter;
return this + TDI_end; return this + TDI_end;
} }

View File

@ -94,7 +94,7 @@ extern void debug_function (tree, int);
extern int dump_flag (dump_info_p, int, const_tree); extern int dump_flag (dump_info_p, int, const_tree);
extern unsigned int dump_register (const char *, const char *, const char *, extern unsigned int dump_register (const char *, const char *, const char *,
int, int); int);
#endif /* ! GCC_TREE_DUMP_H */ #endif /* ! GCC_TREE_DUMP_H */

View File

@ -1725,8 +1725,10 @@ lower_eh_constructs (void)
return 0; return 0;
} }
struct tree_opt_pass pass_lower_eh = struct gimple_opt_pass pass_lower_eh =
{ {
{
GIMPLE_PASS,
"eh", /* name */ "eh", /* name */
NULL, /* gate */ NULL, /* gate */
lower_eh_constructs, /* execute */ lower_eh_constructs, /* execute */
@ -1738,8 +1740,8 @@ struct tree_opt_pass pass_lower_eh =
PROP_gimple_leh, /* properties_provided */ PROP_gimple_leh, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
@ -2244,8 +2246,10 @@ refactor_eh (void)
return 0; return 0;
} }
struct tree_opt_pass pass_refactor_eh = struct gimple_opt_pass pass_refactor_eh =
{ {
{
GIMPLE_PASS,
"ehopt", /* name */ "ehopt", /* name */
NULL, /* gate */ NULL, /* gate */
refactor_eh, /* execute */ refactor_eh, /* execute */
@ -2257,6 +2261,6 @@ struct tree_opt_pass pass_refactor_eh =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1160,8 +1160,10 @@ gate_tree_if_conversion (void)
return flag_tree_vectorize != 0; return flag_tree_vectorize != 0;
} }
struct tree_opt_pass pass_if_conversion = struct gimple_opt_pass pass_if_conversion =
{ {
{
GIMPLE_PASS,
"ifcvt", /* name */ "ifcvt", /* name */
gate_tree_if_conversion, /* gate */ gate_tree_if_conversion, /* gate */
main_tree_if_conversion, /* execute */ main_tree_if_conversion, /* execute */
@ -1173,7 +1175,7 @@ struct tree_opt_pass pass_if_conversion =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 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 */ /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -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 */ "ssa", /* name */
NULL, /* gate */ NULL, /* gate */
rewrite_into_ssa, /* execute */ rewrite_into_ssa, /* execute */
@ -2313,8 +2315,8 @@ struct tree_opt_pass pass_build_ssa =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func TODO_dump_func
| TODO_verify_ssa | TODO_verify_ssa
| TODO_remove_unused_locals, /* todo_flags_finish */ | TODO_remove_unused_locals /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1155,8 +1155,10 @@ gate_tree_loop_distribution (void)
return flag_tree_loop_distribution != 0; return flag_tree_loop_distribution != 0;
} }
struct tree_opt_pass pass_loop_distribution = struct gimple_opt_pass pass_loop_distribution =
{ {
{
GIMPLE_PASS,
"ldist", /* name */ "ldist", /* name */
gate_tree_loop_distribution, /* gate */ gate_tree_loop_distribution, /* gate */
tree_loop_distribution, /* execute */ tree_loop_distribution, /* execute */
@ -1168,6 +1170,6 @@ struct tree_opt_pass pass_loop_distribution =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ TODO_dump_func | TODO_verify_loops /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1303,8 +1303,10 @@ gate_mudflap (void)
return flag_mudflap != 0; return flag_mudflap != 0;
} }
struct tree_opt_pass pass_mudflap_1 = struct gimple_opt_pass pass_mudflap_1 =
{ {
{
GIMPLE_PASS,
"mudflap1", /* name */ "mudflap1", /* name */
gate_mudflap, /* gate */ gate_mudflap, /* gate */
execute_mudflap_function_decls, /* execute */ execute_mudflap_function_decls, /* execute */
@ -1316,12 +1318,14 @@ struct tree_opt_pass pass_mudflap_1 =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
struct tree_opt_pass pass_mudflap_2 = struct gimple_opt_pass pass_mudflap_2 =
{ {
{
GIMPLE_PASS,
"mudflap2", /* name */ "mudflap2", /* name */
gate_mudflap, /* gate */ gate_mudflap, /* gate */
execute_mudflap_function_ops, /* execute */ execute_mudflap_function_ops, /* execute */
@ -1334,8 +1338,8 @@ struct tree_opt_pass pass_mudflap_2 =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_verify_flow | TODO_verify_stmts TODO_verify_flow | TODO_verify_stmts
| TODO_dump_func, /* todo_flags_finish */ | TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
#include "gt-tree-mudflap.h" #include "gt-tree-mudflap.h"

View File

@ -90,8 +90,10 @@ gate_mudflap (void)
return flag_mudflap != 0; return flag_mudflap != 0;
} }
struct tree_opt_pass pass_mudflap_1 = struct gimple_opt_pass pass_mudflap_1 =
{ {
{
GIMPLE_PASS,
"mudflap1", /* name */ "mudflap1", /* name */
gate_mudflap, /* gate */ gate_mudflap, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -103,12 +105,14 @@ struct tree_opt_pass pass_mudflap_1 =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
struct tree_opt_pass pass_mudflap_2 = struct gimple_opt_pass pass_mudflap_2 =
{ {
{
GIMPLE_PASS,
"mudflap2", /* name */ "mudflap2", /* name */
gate_mudflap, /* gate */ gate_mudflap, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -120,8 +124,8 @@ struct tree_opt_pass pass_mudflap_2 =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Instead of: /* Instead of:

View File

@ -221,8 +221,10 @@ tree_nrv (void)
return 0; return 0;
} }
struct tree_opt_pass pass_nrv = struct gimple_opt_pass pass_nrv =
{ {
{
GIMPLE_PASS,
"nrv", /* name */ "nrv", /* name */
NULL, /* gate */ NULL, /* gate */
tree_nrv, /* execute */ tree_nrv, /* execute */
@ -234,8 +236,8 @@ struct tree_opt_pass pass_nrv =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_ggc_collect, /* todo_flags_finish */ TODO_dump_func | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
/* Determine (pessimistically) whether DEST is available for NRV /* Determine (pessimistically) whether DEST is available for NRV
@ -312,8 +314,10 @@ execute_return_slot_opt (void)
return 0; return 0;
} }
struct tree_opt_pass pass_return_slot = struct gimple_opt_pass pass_return_slot =
{ {
{
GIMPLE_PASS,
"retslot", /* name */ "retslot", /* name */
NULL, /* gate */ NULL, /* gate */
execute_return_slot_opt, /* execute */ execute_return_slot_opt, /* execute */
@ -325,6 +329,6 @@ struct tree_opt_pass pass_return_slot =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1063,8 +1063,10 @@ compute_object_sizes (void)
return 0; return 0;
} }
struct tree_opt_pass pass_object_sizes = struct gimple_opt_pass pass_object_sizes =
{ {
{
GIMPLE_PASS,
"objsz", /* name */ "objsz", /* name */
NULL, /* gate */ NULL, /* gate */
compute_object_sizes, /* execute */ compute_object_sizes, /* execute */
@ -1076,6 +1078,6 @@ struct tree_opt_pass pass_object_sizes =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -61,8 +61,10 @@ gate_all_optimizations (void)
&& (!(errorcount || sorrycount) || gimple_in_ssa_p (cfun))); && (!(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 */ NULL, /* name */
gate_all_optimizations, /* gate */ gate_all_optimizations, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -74,8 +76,8 @@ struct tree_opt_pass pass_all_optimizations =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Gate: execute, or not, all of the non-trivial optimizations. */ /* Gate: execute, or not, all of the non-trivial optimizations. */
@ -87,8 +89,10 @@ gate_all_early_local_passes (void)
return (!errorcount && !sorrycount); 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 */ "early_local_cleanups", /* name */
gate_all_early_local_passes, /* gate */ gate_all_early_local_passes, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -100,8 +104,8 @@ struct tree_opt_pass pass_early_local_passes =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_remove_functions, /* todo_flags_finish */ TODO_remove_functions /* todo_flags_finish */
0 /* letter */ }
}; };
static unsigned int static unsigned int
@ -122,8 +126,10 @@ gate_all_early_optimizations (void)
&& !(errorcount || sorrycount)); && !(errorcount || sorrycount));
} }
struct tree_opt_pass pass_all_early_optimizations = struct gimple_opt_pass pass_all_early_optimizations =
{ {
{
GIMPLE_PASS,
"early_optimizations", /* name */ "early_optimizations", /* name */
gate_all_early_optimizations, /* gate */ gate_all_early_optimizations, /* gate */
execute_early_local_optimizations, /* execute */ execute_early_local_optimizations, /* execute */
@ -135,8 +141,8 @@ struct tree_opt_pass pass_all_early_optimizations =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Pass: cleanup the CFG just before expanding trees to RTL. /* Pass: cleanup the CFG just before expanding trees to RTL.
@ -151,8 +157,10 @@ execute_cleanup_cfg_pre_ipa (void)
return 0; return 0;
} }
struct tree_opt_pass pass_cleanup_cfg = struct gimple_opt_pass pass_cleanup_cfg =
{ {
{
GIMPLE_PASS,
"cleanup_cfg", /* name */ "cleanup_cfg", /* name */
NULL, /* gate */ NULL, /* gate */
execute_cleanup_cfg_pre_ipa, /* execute */ execute_cleanup_cfg_pre_ipa, /* execute */
@ -164,8 +172,8 @@ struct tree_opt_pass pass_cleanup_cfg =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
@ -184,8 +192,10 @@ execute_cleanup_cfg_post_optimizing (void)
return 0; 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 */ "final_cleanup", /* name */
NULL, /* gate */ NULL, /* gate */
execute_cleanup_cfg_post_optimizing, /* execute */ execute_cleanup_cfg_post_optimizing, /* execute */
@ -197,8 +207,8 @@ struct tree_opt_pass pass_cleanup_cfg_post_optimizing =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* Pass: do the actions required to finish with tree-ssa optimization /* Pass: do the actions required to finish with tree-ssa optimization
@ -216,8 +226,10 @@ execute_free_datastructures (void)
return 0; return 0;
} }
struct tree_opt_pass pass_free_datastructures = struct gimple_opt_pass pass_free_datastructures =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
execute_free_datastructures, /* execute */ execute_free_datastructures, /* execute */
@ -229,8 +241,8 @@ struct tree_opt_pass pass_free_datastructures =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Pass: free cfg annotations. */ /* Pass: free cfg annotations. */
@ -243,8 +255,10 @@ execute_free_cfg_annotations (void)
return 0; return 0;
} }
struct tree_opt_pass pass_free_cfg_annotations = struct gimple_opt_pass pass_free_cfg_annotations =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
execute_free_cfg_annotations, /* execute */ execute_free_cfg_annotations, /* execute */
@ -256,8 +270,8 @@ struct tree_opt_pass pass_free_cfg_annotations =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Pass: fixup_cfg. IPA passes, compilation of earlier functions or inlining /* Pass: fixup_cfg. IPA passes, compilation of earlier functions or inlining
@ -330,8 +344,10 @@ gate_init_datastructures (void)
return (optimize >= 1); return (optimize >= 1);
} }
struct tree_opt_pass pass_init_datastructures = struct gimple_opt_pass pass_init_datastructures =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
gate_init_datastructures, /* gate */ gate_init_datastructures, /* gate */
execute_init_datastructures, /* execute */ execute_init_datastructures, /* execute */
@ -343,8 +359,8 @@ struct tree_opt_pass pass_init_datastructures =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
void void
@ -358,7 +374,7 @@ tree_lowering_passes (tree fn)
bitmap_obstack_initialize (NULL); bitmap_obstack_initialize (NULL);
execute_pass_list (all_lowering_passes); execute_pass_list (all_lowering_passes);
if (optimize && cgraph_global_info_ready) 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_POST_DOMINATORS);
free_dominance_info (CDI_DOMINATORS); free_dominance_info (CDI_DOMINATORS);
compact_blocks (); compact_blocks ();

View File

@ -1466,8 +1466,10 @@ rewrite_out_of_ssa (void)
/* Define the parameters of the out of SSA pass. */ /* 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 */ "optimized", /* name */
NULL, /* gate */ NULL, /* gate */
rewrite_out_of_ssa, /* execute */ rewrite_out_of_ssa, /* execute */
@ -1483,6 +1485,6 @@ struct tree_opt_pass pass_del_ssa =
| TODO_verify_stmts, /* todo_flags_start */ | TODO_verify_stmts, /* todo_flags_start */
TODO_dump_func TODO_dump_func
| TODO_ggc_collect | TODO_ggc_collect
| TODO_remove_unused_locals, /* todo_flags_finish */ | TODO_remove_unused_locals /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -88,9 +88,16 @@ extern const char *dump_file_name;
/* Return the dump_file_info for the given phase. */ /* Return the dump_file_info for the given phase. */
extern struct dump_file_info *get_dump_file_info (enum tree_dump_index); extern struct dump_file_info *get_dump_file_info (enum tree_dump_index);
/* Describe one pass. */ /* Describe one pass; this is the common part shared across different pass
struct tree_opt_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. */ /* Terse name of the pass used as a fragment of the dump file name. */
const char *name; const char *name;
@ -104,10 +111,10 @@ struct tree_opt_pass
unsigned int (*execute) (void); unsigned int (*execute) (void);
/* A list of sub-passes to run, dependent on gate predicate. */ /* 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. */ /* 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. */ /* Static pass number, used as a fragment of the dump file name. */
int static_pass_number; int static_pass_number;
@ -124,9 +131,25 @@ struct tree_opt_pass
/* Flags indicating common sets things to do before and after. */ /* Flags indicating common sets things to do before and after. */
unsigned int todo_flags_start; unsigned int todo_flags_start;
unsigned int todo_flags_finish; unsigned int todo_flags_finish;
};
/* Letter for RTL dumps. */ /* Description or GIMPLE pass. */
char letter; struct gimple_opt_pass
{
struct opt_pass pass;
};
/* 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. */ /* Define a tree dump switch. */
@ -240,222 +263,222 @@ struct dump_file_info
extern void tree_lowering_passes (tree decl); extern void tree_lowering_passes (tree decl);
extern struct tree_opt_pass pass_mudflap_1; extern struct gimple_opt_pass pass_mudflap_1;
extern struct tree_opt_pass pass_mudflap_2; extern struct gimple_opt_pass pass_mudflap_2;
extern struct tree_opt_pass pass_remove_useless_stmts; extern struct gimple_opt_pass pass_remove_useless_stmts;
extern struct tree_opt_pass pass_lower_cf; extern struct gimple_opt_pass pass_lower_cf;
extern struct tree_opt_pass pass_refactor_eh; extern struct gimple_opt_pass pass_refactor_eh;
extern struct tree_opt_pass pass_lower_eh; extern struct gimple_opt_pass pass_lower_eh;
extern struct tree_opt_pass pass_build_cfg; extern struct gimple_opt_pass pass_build_cfg;
extern struct tree_opt_pass pass_tree_profile; extern struct gimple_opt_pass pass_tree_profile;
extern struct tree_opt_pass pass_early_tree_profile; extern struct gimple_opt_pass pass_early_tree_profile;
extern struct tree_opt_pass pass_cleanup_cfg; extern struct gimple_opt_pass pass_cleanup_cfg;
extern struct tree_opt_pass pass_referenced_vars; extern struct gimple_opt_pass pass_referenced_vars;
extern struct tree_opt_pass pass_sra; extern struct gimple_opt_pass pass_sra;
extern struct tree_opt_pass pass_sra_early; extern struct gimple_opt_pass pass_sra_early;
extern struct tree_opt_pass pass_tail_recursion; extern struct gimple_opt_pass pass_tail_recursion;
extern struct tree_opt_pass pass_tail_calls; extern struct gimple_opt_pass pass_tail_calls;
extern struct tree_opt_pass pass_tree_loop; extern struct gimple_opt_pass pass_tree_loop;
extern struct tree_opt_pass pass_tree_loop_init; extern struct gimple_opt_pass pass_tree_loop_init;
extern struct tree_opt_pass pass_lim; extern struct gimple_opt_pass pass_lim;
extern struct tree_opt_pass pass_tree_unswitch; extern struct gimple_opt_pass pass_tree_unswitch;
extern struct tree_opt_pass pass_predcom; extern struct gimple_opt_pass pass_predcom;
extern struct tree_opt_pass pass_iv_canon; extern struct gimple_opt_pass pass_iv_canon;
extern struct tree_opt_pass pass_scev_cprop; extern struct gimple_opt_pass pass_scev_cprop;
extern struct tree_opt_pass pass_empty_loop; extern struct gimple_opt_pass pass_empty_loop;
extern struct tree_opt_pass pass_record_bounds; extern struct gimple_opt_pass pass_record_bounds;
extern struct tree_opt_pass pass_if_conversion; extern struct gimple_opt_pass pass_if_conversion;
extern struct tree_opt_pass pass_loop_distribution; extern struct gimple_opt_pass pass_loop_distribution;
extern struct tree_opt_pass pass_vectorize; extern struct gimple_opt_pass pass_vectorize;
extern struct tree_opt_pass pass_complete_unroll; extern struct gimple_opt_pass pass_complete_unroll;
extern struct tree_opt_pass pass_parallelize_loops; extern struct gimple_opt_pass pass_parallelize_loops;
extern struct tree_opt_pass pass_loop_prefetch; extern struct gimple_opt_pass pass_loop_prefetch;
extern struct tree_opt_pass pass_iv_optimize; extern struct gimple_opt_pass pass_iv_optimize;
extern struct tree_opt_pass pass_tree_loop_done; extern struct gimple_opt_pass pass_tree_loop_done;
extern struct tree_opt_pass pass_ch; extern struct gimple_opt_pass pass_ch;
extern struct tree_opt_pass pass_ccp; extern struct gimple_opt_pass pass_ccp;
extern struct tree_opt_pass pass_phi_only_cprop; extern struct gimple_opt_pass pass_phi_only_cprop;
extern struct tree_opt_pass pass_build_ssa; extern struct gimple_opt_pass pass_build_ssa;
extern struct tree_opt_pass pass_del_ssa; extern struct gimple_opt_pass pass_del_ssa;
extern struct tree_opt_pass pass_build_alias; extern struct gimple_opt_pass pass_build_alias;
extern struct tree_opt_pass pass_dominator; extern struct gimple_opt_pass pass_dominator;
extern struct tree_opt_pass pass_dce; extern struct gimple_opt_pass pass_dce;
extern struct tree_opt_pass pass_dce_loop; extern struct gimple_opt_pass pass_dce_loop;
extern struct tree_opt_pass pass_cd_dce; extern struct gimple_opt_pass pass_cd_dce;
extern struct tree_opt_pass pass_merge_phi; extern struct gimple_opt_pass pass_merge_phi;
extern struct tree_opt_pass pass_split_crit_edges; extern struct gimple_opt_pass pass_split_crit_edges;
extern struct tree_opt_pass pass_pre; extern struct gimple_opt_pass pass_pre;
extern struct tree_opt_pass pass_profile; extern struct gimple_opt_pass pass_profile;
extern struct tree_opt_pass pass_lower_complex_O0; extern struct gimple_opt_pass pass_lower_complex_O0;
extern struct tree_opt_pass pass_lower_complex; extern struct gimple_opt_pass pass_lower_complex;
extern struct tree_opt_pass pass_lower_vector; extern struct gimple_opt_pass pass_lower_vector;
extern struct tree_opt_pass pass_lower_vector_ssa; extern struct gimple_opt_pass pass_lower_vector_ssa;
extern struct tree_opt_pass pass_lower_omp; extern struct gimple_opt_pass pass_lower_omp;
extern struct tree_opt_pass pass_expand_omp; extern struct gimple_opt_pass pass_expand_omp;
extern struct tree_opt_pass pass_expand_omp_ssa; extern struct gimple_opt_pass pass_expand_omp_ssa;
extern struct tree_opt_pass pass_object_sizes; extern struct gimple_opt_pass pass_object_sizes;
extern struct tree_opt_pass pass_fold_builtins; extern struct gimple_opt_pass pass_fold_builtins;
extern struct tree_opt_pass pass_stdarg; extern struct gimple_opt_pass pass_stdarg;
extern struct tree_opt_pass pass_early_warn_uninitialized; extern struct gimple_opt_pass pass_early_warn_uninitialized;
extern struct tree_opt_pass pass_late_warn_uninitialized; extern struct gimple_opt_pass pass_late_warn_uninitialized;
extern struct tree_opt_pass pass_cse_reciprocals; extern struct gimple_opt_pass pass_cse_reciprocals;
extern struct tree_opt_pass pass_cse_sincos; extern struct gimple_opt_pass pass_cse_sincos;
extern struct tree_opt_pass pass_convert_to_rsqrt; extern struct gimple_opt_pass pass_convert_to_rsqrt;
extern struct tree_opt_pass pass_warn_function_return; extern struct gimple_opt_pass pass_warn_function_return;
extern struct tree_opt_pass pass_warn_function_noreturn; extern struct gimple_opt_pass pass_warn_function_noreturn;
extern struct tree_opt_pass pass_cselim; extern struct gimple_opt_pass pass_cselim;
extern struct tree_opt_pass pass_phiopt; extern struct gimple_opt_pass pass_phiopt;
extern struct tree_opt_pass pass_forwprop; extern struct gimple_opt_pass pass_forwprop;
extern struct tree_opt_pass pass_phiprop; extern struct gimple_opt_pass pass_phiprop;
extern struct tree_opt_pass pass_tree_ifcombine; extern struct gimple_opt_pass pass_tree_ifcombine;
extern struct tree_opt_pass pass_dse; extern struct gimple_opt_pass pass_dse;
extern struct tree_opt_pass pass_simple_dse; extern struct gimple_opt_pass pass_simple_dse;
extern struct tree_opt_pass pass_nrv; extern struct gimple_opt_pass pass_nrv;
extern struct tree_opt_pass pass_mark_used_blocks; extern struct gimple_opt_pass pass_mark_used_blocks;
extern struct tree_opt_pass pass_rename_ssa_copies; extern struct gimple_opt_pass pass_rename_ssa_copies;
extern struct tree_opt_pass pass_expand; extern struct gimple_opt_pass pass_expand;
extern struct tree_opt_pass pass_rest_of_compilation; extern struct gimple_opt_pass pass_rest_of_compilation;
extern struct tree_opt_pass pass_sink_code; extern struct gimple_opt_pass pass_sink_code;
extern struct tree_opt_pass pass_fre; extern struct gimple_opt_pass pass_fre;
extern struct tree_opt_pass pass_linear_transform; extern struct gimple_opt_pass pass_linear_transform;
extern struct tree_opt_pass pass_check_data_deps; extern struct gimple_opt_pass pass_check_data_deps;
extern struct tree_opt_pass pass_copy_prop; extern struct gimple_opt_pass pass_copy_prop;
extern struct tree_opt_pass pass_store_ccp; extern struct gimple_opt_pass pass_store_ccp;
extern struct tree_opt_pass pass_vrp; extern struct gimple_opt_pass pass_vrp;
extern struct tree_opt_pass pass_create_structure_vars; extern struct gimple_opt_pass pass_create_structure_vars;
extern struct tree_opt_pass pass_uncprop; extern struct gimple_opt_pass pass_uncprop;
extern struct tree_opt_pass pass_return_slot; extern struct gimple_opt_pass pass_return_slot;
extern struct tree_opt_pass pass_reassoc; extern struct gimple_opt_pass pass_reassoc;
extern struct tree_opt_pass pass_rebuild_cgraph_edges; extern struct gimple_opt_pass pass_rebuild_cgraph_edges;
extern struct tree_opt_pass pass_build_cgraph_edges; extern struct gimple_opt_pass pass_build_cgraph_edges;
extern struct tree_opt_pass pass_reset_cc_flags; extern struct gimple_opt_pass pass_reset_cc_flags;
/* IPA Passes */ /* IPA Passes */
extern struct tree_opt_pass pass_ipa_matrix_reorg; extern struct simple_ipa_opt_pass pass_ipa_matrix_reorg;
extern struct tree_opt_pass pass_ipa_cp; extern struct simple_ipa_opt_pass pass_ipa_cp;
extern struct tree_opt_pass pass_ipa_inline; extern struct simple_ipa_opt_pass pass_ipa_inline;
extern struct tree_opt_pass pass_ipa_early_inline; extern struct simple_ipa_opt_pass pass_ipa_early_inline;
extern struct tree_opt_pass pass_ipa_reference; extern struct simple_ipa_opt_pass pass_ipa_reference;
extern struct tree_opt_pass pass_ipa_pure_const; extern struct simple_ipa_opt_pass pass_ipa_pure_const;
extern struct tree_opt_pass pass_ipa_type_escape; extern struct simple_ipa_opt_pass pass_ipa_type_escape;
extern struct tree_opt_pass pass_ipa_pta; extern struct simple_ipa_opt_pass pass_ipa_pta;
extern struct tree_opt_pass pass_ipa_struct_reorg; extern struct simple_ipa_opt_pass pass_ipa_struct_reorg;
extern struct tree_opt_pass pass_early_local_passes; extern struct simple_ipa_opt_pass pass_early_local_passes;
extern struct tree_opt_pass pass_ipa_increase_alignment; extern struct simple_ipa_opt_pass pass_ipa_increase_alignment;
extern struct tree_opt_pass pass_ipa_function_and_variable_visibility; extern struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility;
extern struct tree_opt_pass pass_all_optimizations; extern struct gimple_opt_pass pass_all_optimizations;
extern struct tree_opt_pass pass_cleanup_cfg_post_optimizing; extern struct gimple_opt_pass pass_cleanup_cfg_post_optimizing;
extern struct tree_opt_pass pass_free_cfg_annotations; extern struct gimple_opt_pass pass_free_cfg_annotations;
extern struct tree_opt_pass pass_free_datastructures; extern struct gimple_opt_pass pass_free_datastructures;
extern struct tree_opt_pass pass_init_datastructures; extern struct gimple_opt_pass pass_init_datastructures;
extern struct tree_opt_pass pass_fixup_cfg; extern struct gimple_opt_pass pass_fixup_cfg;
extern struct tree_opt_pass pass_init_function; extern struct rtl_opt_pass pass_init_function;
extern struct tree_opt_pass pass_jump; extern struct rtl_opt_pass pass_jump;
extern struct tree_opt_pass pass_rtl_eh; extern struct rtl_opt_pass pass_rtl_eh;
extern struct tree_opt_pass pass_initial_value_sets; extern struct rtl_opt_pass pass_initial_value_sets;
extern struct tree_opt_pass pass_unshare_all_rtl; extern struct rtl_opt_pass pass_unshare_all_rtl;
extern struct tree_opt_pass pass_instantiate_virtual_regs; extern struct rtl_opt_pass pass_instantiate_virtual_regs;
extern struct tree_opt_pass pass_rtl_fwprop; extern struct rtl_opt_pass pass_rtl_fwprop;
extern struct tree_opt_pass pass_rtl_fwprop_addr; extern struct rtl_opt_pass pass_rtl_fwprop_addr;
extern struct tree_opt_pass pass_jump2; extern struct rtl_opt_pass pass_jump2;
extern struct tree_opt_pass pass_lower_subreg; extern struct rtl_opt_pass pass_lower_subreg;
extern struct tree_opt_pass pass_cse; extern struct rtl_opt_pass pass_cse;
extern struct tree_opt_pass pass_fast_rtl_dce; extern struct rtl_opt_pass pass_fast_rtl_dce;
extern struct tree_opt_pass pass_ud_rtl_dce; extern struct rtl_opt_pass pass_ud_rtl_dce;
extern struct tree_opt_pass pass_rtl_dce; extern struct rtl_opt_pass pass_rtl_dce;
extern struct tree_opt_pass pass_rtl_dse1; extern struct rtl_opt_pass pass_rtl_dse1;
extern struct tree_opt_pass pass_rtl_dse2; extern struct rtl_opt_pass pass_rtl_dse2;
extern struct tree_opt_pass pass_rtl_dse3; extern struct rtl_opt_pass pass_rtl_dse3;
extern struct tree_opt_pass pass_gcse; extern struct rtl_opt_pass pass_gcse;
extern struct tree_opt_pass pass_jump_bypass; extern struct rtl_opt_pass pass_jump_bypass;
extern struct tree_opt_pass pass_profiling; extern struct rtl_opt_pass pass_profiling;
extern struct tree_opt_pass pass_rtl_ifcvt; extern struct rtl_opt_pass pass_rtl_ifcvt;
extern struct tree_opt_pass pass_tracer; extern struct gimple_opt_pass pass_tracer;
extern struct tree_opt_pass pass_into_cfg_layout_mode; extern struct rtl_opt_pass pass_into_cfg_layout_mode;
extern struct tree_opt_pass pass_outof_cfg_layout_mode; extern struct rtl_opt_pass pass_outof_cfg_layout_mode;
extern struct tree_opt_pass pass_loop2; extern struct rtl_opt_pass pass_loop2;
extern struct tree_opt_pass pass_rtl_loop_init; extern struct rtl_opt_pass pass_rtl_loop_init;
extern struct tree_opt_pass pass_rtl_move_loop_invariants; extern struct rtl_opt_pass pass_rtl_move_loop_invariants;
extern struct tree_opt_pass pass_rtl_unswitch; extern struct rtl_opt_pass pass_rtl_unswitch;
extern struct tree_opt_pass pass_rtl_unroll_and_peel_loops; extern struct rtl_opt_pass pass_rtl_unroll_and_peel_loops;
extern struct tree_opt_pass pass_rtl_doloop; extern struct rtl_opt_pass pass_rtl_doloop;
extern struct tree_opt_pass pass_rtl_loop_done; extern struct rtl_opt_pass pass_rtl_loop_done;
extern struct tree_opt_pass pass_web; extern struct rtl_opt_pass pass_web;
extern struct tree_opt_pass pass_cse2; extern struct rtl_opt_pass pass_cse2;
extern struct tree_opt_pass pass_df_initialize_opt; extern struct rtl_opt_pass pass_df_initialize_opt;
extern struct tree_opt_pass pass_df_initialize_no_opt; extern struct rtl_opt_pass pass_df_initialize_no_opt;
extern struct tree_opt_pass pass_regclass_init; extern struct rtl_opt_pass pass_regclass_init;
extern struct tree_opt_pass pass_subregs_of_mode_init; extern struct rtl_opt_pass pass_subregs_of_mode_init;
extern struct tree_opt_pass pass_subregs_of_mode_finish; extern struct rtl_opt_pass pass_subregs_of_mode_finish;
extern struct tree_opt_pass pass_inc_dec; extern struct rtl_opt_pass pass_inc_dec;
extern struct tree_opt_pass pass_stack_ptr_mod; extern struct rtl_opt_pass pass_stack_ptr_mod;
extern struct tree_opt_pass pass_initialize_regs; extern struct rtl_opt_pass pass_initialize_regs;
extern struct tree_opt_pass pass_combine; extern struct rtl_opt_pass pass_combine;
extern struct tree_opt_pass pass_if_after_combine; extern struct rtl_opt_pass pass_if_after_combine;
extern struct tree_opt_pass pass_partition_blocks; extern struct rtl_opt_pass pass_partition_blocks;
extern struct tree_opt_pass pass_match_asm_constraints; extern struct rtl_opt_pass pass_match_asm_constraints;
extern struct tree_opt_pass pass_regmove; extern struct rtl_opt_pass pass_regmove;
extern struct tree_opt_pass pass_split_all_insns; extern struct rtl_opt_pass pass_split_all_insns;
extern struct tree_opt_pass pass_lower_subreg2; extern struct rtl_opt_pass pass_lower_subreg2;
extern struct tree_opt_pass pass_mode_switching; extern struct rtl_opt_pass pass_mode_switching;
extern struct tree_opt_pass pass_see; extern struct rtl_opt_pass pass_see;
extern struct tree_opt_pass pass_sms; extern struct rtl_opt_pass pass_sms;
extern struct tree_opt_pass pass_sched; extern struct rtl_opt_pass pass_sched;
extern struct tree_opt_pass pass_local_alloc; extern struct rtl_opt_pass pass_local_alloc;
extern struct tree_opt_pass pass_global_alloc; extern struct rtl_opt_pass pass_global_alloc;
extern struct tree_opt_pass pass_postreload; extern struct rtl_opt_pass pass_postreload;
extern struct tree_opt_pass pass_clean_state; extern struct rtl_opt_pass pass_clean_state;
extern struct tree_opt_pass pass_branch_prob; extern struct rtl_opt_pass pass_branch_prob;
extern struct tree_opt_pass pass_value_profile_transformations; extern struct rtl_opt_pass pass_value_profile_transformations;
extern struct tree_opt_pass pass_postreload_cse; extern struct rtl_opt_pass pass_postreload_cse;
extern struct tree_opt_pass pass_gcse2; extern struct rtl_opt_pass pass_gcse2;
extern struct tree_opt_pass pass_split_after_reload; extern struct rtl_opt_pass pass_split_after_reload;
extern struct tree_opt_pass pass_branch_target_load_optimize1; extern struct rtl_opt_pass pass_branch_target_load_optimize1;
extern struct tree_opt_pass pass_thread_prologue_and_epilogue; extern struct rtl_opt_pass pass_thread_prologue_and_epilogue;
extern struct tree_opt_pass pass_stack_adjustments; extern struct rtl_opt_pass pass_stack_adjustments;
extern struct tree_opt_pass pass_peephole2; extern struct rtl_opt_pass pass_peephole2;
extern struct tree_opt_pass pass_if_after_reload; extern struct rtl_opt_pass pass_if_after_reload;
extern struct tree_opt_pass pass_regrename; extern struct rtl_opt_pass pass_regrename;
extern struct tree_opt_pass pass_cprop_hardreg; extern struct rtl_opt_pass pass_cprop_hardreg;
extern struct tree_opt_pass pass_reorder_blocks; extern struct rtl_opt_pass pass_reorder_blocks;
extern struct tree_opt_pass pass_branch_target_load_optimize2; extern struct rtl_opt_pass pass_branch_target_load_optimize2;
extern struct tree_opt_pass pass_leaf_regs; extern struct rtl_opt_pass pass_leaf_regs;
extern struct tree_opt_pass pass_split_before_sched2; extern struct rtl_opt_pass pass_split_before_sched2;
extern struct tree_opt_pass pass_sched2; extern struct rtl_opt_pass pass_sched2;
extern struct tree_opt_pass pass_stack_regs; extern struct rtl_opt_pass pass_stack_regs;
extern struct tree_opt_pass pass_stack_regs_run; extern struct rtl_opt_pass pass_stack_regs_run;
extern struct tree_opt_pass pass_df_finish; extern struct rtl_opt_pass pass_df_finish;
extern struct tree_opt_pass pass_compute_alignments; extern struct rtl_opt_pass pass_compute_alignments;
extern struct tree_opt_pass pass_duplicate_computed_gotos; extern struct rtl_opt_pass pass_duplicate_computed_gotos;
extern struct tree_opt_pass pass_variable_tracking; extern struct rtl_opt_pass pass_variable_tracking;
extern struct tree_opt_pass pass_free_cfg; extern struct rtl_opt_pass pass_free_cfg;
extern struct tree_opt_pass pass_machine_reorg; extern struct rtl_opt_pass pass_machine_reorg;
extern struct tree_opt_pass pass_cleanup_barriers; extern struct rtl_opt_pass pass_cleanup_barriers;
extern struct tree_opt_pass pass_delay_slots; extern struct rtl_opt_pass pass_delay_slots;
extern struct tree_opt_pass pass_split_for_shorten_branches; extern struct rtl_opt_pass pass_split_for_shorten_branches;
extern struct tree_opt_pass pass_split_before_regstack; extern struct rtl_opt_pass pass_split_before_regstack;
extern struct tree_opt_pass pass_convert_to_eh_region_ranges; extern struct rtl_opt_pass pass_convert_to_eh_region_ranges;
extern struct tree_opt_pass pass_shorten_branches; extern struct rtl_opt_pass pass_shorten_branches;
extern struct tree_opt_pass pass_set_nothrow_function_flags; extern struct rtl_opt_pass pass_set_nothrow_function_flags;
extern struct tree_opt_pass pass_final; extern struct rtl_opt_pass pass_final;
extern struct tree_opt_pass pass_rtl_seqabstr; extern struct rtl_opt_pass pass_rtl_seqabstr;
extern struct tree_opt_pass pass_release_ssa_names; extern struct gimple_opt_pass pass_release_ssa_names;
extern struct tree_opt_pass pass_early_inline; extern struct gimple_opt_pass pass_early_inline;
extern struct tree_opt_pass pass_inline_parameters; extern struct gimple_opt_pass pass_inline_parameters;
extern struct tree_opt_pass pass_apply_inline; extern struct gimple_opt_pass pass_apply_inline;
extern struct tree_opt_pass pass_all_early_optimizations; extern struct gimple_opt_pass pass_all_early_optimizations;
extern struct tree_opt_pass pass_update_address_taken; extern struct gimple_opt_pass pass_update_address_taken;
/* The root of the compilation pass tree, once constructed. */ /* 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_pass_list (struct opt_pass *);
extern void execute_ipa_pass_list (struct tree_opt_pass *); extern void execute_ipa_pass_list (struct opt_pass *);
extern void print_current_pass (FILE *); extern void print_current_pass (FILE *);
extern void debug_pass (void); extern void debug_pass (void);

View File

@ -443,8 +443,10 @@ tree_profiling (void)
return 0; return 0;
} }
struct tree_opt_pass pass_tree_profile = struct gimple_opt_pass pass_tree_profile =
{ {
{
GIMPLE_PASS,
"tree_profile", /* name */ "tree_profile", /* name */
do_tree_profiling, /* gate */ do_tree_profiling, /* gate */
tree_profiling, /* execute */ tree_profiling, /* execute */
@ -456,8 +458,8 @@ struct tree_opt_pass pass_tree_profile =
PROP_gimple_leh | PROP_cfg, /* properties_provided */ PROP_gimple_leh | PROP_cfg, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_verify_stmts | TODO_dump_func, /* todo_flags_finish */ TODO_verify_stmts | TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
struct profile_hooks tree_profile_hooks = struct profile_hooks tree_profile_hooks =

View File

@ -3680,8 +3680,10 @@ gate_sra (void)
return flag_tree_sra != 0; return flag_tree_sra != 0;
} }
struct tree_opt_pass pass_sra_early = struct gimple_opt_pass pass_sra_early =
{ {
{
GIMPLE_PASS,
"esra", /* name */ "esra", /* name */
gate_sra, /* gate */ gate_sra, /* gate */
tree_sra_early, /* execute */ tree_sra_early, /* execute */
@ -3696,12 +3698,14 @@ struct tree_opt_pass pass_sra_early =
TODO_dump_func TODO_dump_func
| TODO_update_ssa | TODO_update_ssa
| TODO_ggc_collect | TODO_ggc_collect
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };
struct tree_opt_pass pass_sra = struct gimple_opt_pass pass_sra =
{ {
{
GIMPLE_PASS,
"sra", /* name */ "sra", /* name */
gate_sra, /* gate */ gate_sra, /* gate */
tree_sra, /* execute */ tree_sra, /* execute */
@ -3716,6 +3720,6 @@ struct tree_opt_pass pass_sra =
TODO_dump_func TODO_dump_func
| TODO_update_ssa | TODO_update_ssa
| TODO_ggc_collect | TODO_ggc_collect
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -4205,8 +4205,10 @@ gate_structure_vars (void)
return flag_tree_salias != 0; 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 */ "salias", /* name */
gate_structure_vars, /* gate */ gate_structure_vars, /* gate */
create_structure_vars, /* execute */ create_structure_vars, /* execute */
@ -4218,8 +4220,8 @@ struct tree_opt_pass pass_create_structure_vars =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* Reset the call_clobbered flags on our referenced vars. In /* Reset the call_clobbered flags on our referenced vars. In
@ -4236,8 +4238,10 @@ reset_cc_flags (void)
return 0; return 0;
} }
struct tree_opt_pass pass_reset_cc_flags = struct gimple_opt_pass pass_reset_cc_flags =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
reset_cc_flags, /* execute */ reset_cc_flags, /* execute */
@ -4249,8 +4253,8 @@ struct tree_opt_pass pass_reset_cc_flags =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
static bool 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 */ "build_alias", /* name */
gate_build_alias, /* gate */ gate_build_alias, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -4273,6 +4279,6 @@ struct tree_opt_pass pass_build_alias =
PROP_alias, /* properties_provided */ PROP_alias, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_rebuild_alias, /* todo_flags_finish */ TODO_rebuild_alias /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1495,8 +1495,10 @@ gate_ccp (void)
} }
struct tree_opt_pass pass_ccp = struct gimple_opt_pass pass_ccp =
{ {
{
GIMPLE_PASS,
"ccp", /* name */ "ccp", /* name */
gate_ccp, /* gate */ gate_ccp, /* gate */
do_ssa_ccp, /* execute */ do_ssa_ccp, /* execute */
@ -1509,8 +1511,8 @@ struct tree_opt_pass pass_ccp =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa TODO_dump_func | TODO_verify_ssa
| TODO_verify_stmts | TODO_ggc_collect,/* todo_flags_finish */ | TODO_verify_stmts | TODO_ggc_collect/* todo_flags_finish */
0 /* letter */ }
}; };
@ -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 */ "store_ccp", /* name */
gate_store_ccp, /* gate */ gate_store_ccp, /* gate */
do_ssa_store_ccp, /* execute */ do_ssa_store_ccp, /* execute */
@ -1545,8 +1549,8 @@ struct tree_opt_pass pass_store_ccp =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa TODO_dump_func | TODO_verify_ssa
| TODO_verify_stmts | TODO_ggc_collect,/* todo_flags_finish */ | TODO_verify_stmts | TODO_ggc_collect/* todo_flags_finish */
0 /* letter */ }
}; };
/* Given a constant value VAL for bitfield FIELD, and a destination /* 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 */ "fab", /* name */
NULL, /* gate */ NULL, /* gate */
execute_fold_all_builtins, /* execute */ execute_fold_all_builtins, /* execute */
@ -3041,6 +3047,6 @@ struct tree_opt_pass pass_fold_builtins =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func TODO_dump_func
| TODO_verify_ssa | TODO_verify_ssa
| TODO_update_ssa, /* todo_flags_finish */ | TODO_update_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1062,8 +1062,10 @@ gate_copy_prop (void)
return flag_tree_copy_prop != 0; return flag_tree_copy_prop != 0;
} }
struct tree_opt_pass pass_copy_prop = struct gimple_opt_pass pass_copy_prop =
{ {
{
GIMPLE_PASS,
"copyprop", /* name */ "copyprop", /* name */
gate_copy_prop, /* gate */ gate_copy_prop, /* gate */
execute_copy_prop, /* execute */ execute_copy_prop, /* execute */
@ -1079,7 +1081,7 @@ struct tree_opt_pass pass_copy_prop =
| TODO_dump_func | TODO_dump_func
| TODO_ggc_collect | TODO_ggc_collect
| TODO_verify_ssa | TODO_verify_ssa
| TODO_update_ssa, /* todo_flags_finish */ | TODO_update_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -389,8 +389,10 @@ gate_copyrename (void)
return flag_tree_copyrename != 0; 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 */ "copyrename", /* name */
gate_copyrename, /* gate */ gate_copyrename, /* gate */
rename_ssa_copies, /* execute */ rename_ssa_copies, /* execute */
@ -402,7 +404,7 @@ struct tree_opt_pass pass_rename_ssa_copies =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -901,8 +901,10 @@ gate_dce (void)
return flag_tree_dce != 0; return flag_tree_dce != 0;
} }
struct tree_opt_pass pass_dce = struct gimple_opt_pass pass_dce =
{ {
{
GIMPLE_PASS,
"dce", /* name */ "dce", /* name */
gate_dce, /* gate */ gate_dce, /* gate */
tree_ssa_dce, /* execute */ tree_ssa_dce, /* execute */
@ -914,12 +916,14 @@ struct tree_opt_pass pass_dce =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };
struct tree_opt_pass pass_dce_loop = struct gimple_opt_pass pass_dce_loop =
{ {
{
GIMPLE_PASS,
"dceloop", /* name */ "dceloop", /* name */
gate_dce, /* gate */ gate_dce, /* gate */
tree_ssa_dce_loop, /* execute */ tree_ssa_dce_loop, /* execute */
@ -931,12 +935,14 @@ struct tree_opt_pass pass_dce_loop =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa, /* todo_flags_finish */ TODO_dump_func | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };
struct tree_opt_pass pass_cd_dce = struct gimple_opt_pass pass_cd_dce =
{ {
{
GIMPLE_PASS,
"cddce", /* name */ "cddce", /* name */
gate_dce, /* gate */ gate_dce, /* gate */
tree_ssa_cd_dce, /* execute */ tree_ssa_cd_dce, /* execute */
@ -949,6 +955,6 @@ struct tree_opt_pass pass_cd_dce =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa TODO_dump_func | TODO_verify_ssa
| TODO_verify_flow, /* todo_flags_finish */ | TODO_verify_flow /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -367,8 +367,10 @@ gate_dominator (void)
return flag_tree_dom != 0; return flag_tree_dom != 0;
} }
struct tree_opt_pass pass_dominator = struct gimple_opt_pass pass_dominator =
{ {
{
GIMPLE_PASS,
"dom", /* name */ "dom", /* name */
gate_dominator, /* gate */ gate_dominator, /* gate */
tree_ssa_dominator_optimize, /* execute */ tree_ssa_dominator_optimize, /* execute */
@ -383,8 +385,8 @@ struct tree_opt_pass pass_dominator =
TODO_dump_func TODO_dump_func
| TODO_update_ssa | TODO_update_ssa
| TODO_cleanup_cfg | TODO_cleanup_cfg
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };
@ -2533,8 +2535,10 @@ eliminate_degenerate_phis (void)
return 0; return 0;
} }
struct tree_opt_pass pass_phi_only_cprop = struct gimple_opt_pass pass_phi_only_cprop =
{ {
{
GIMPLE_PASS,
"phicprop", /* name */ "phicprop", /* name */
gate_dominator, /* gate */ gate_dominator, /* gate */
eliminate_degenerate_phis, /* execute */ eliminate_degenerate_phis, /* execute */
@ -2551,6 +2555,6 @@ struct tree_opt_pass pass_phi_only_cprop =
| TODO_ggc_collect | TODO_ggc_collect
| TODO_verify_ssa | TODO_verify_ssa
| TODO_verify_stmts | TODO_verify_stmts
| TODO_update_ssa, /* todo_flags_finish */ | TODO_update_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -632,7 +632,10 @@ gate_dse (void)
return flag_tree_dse != 0; return flag_tree_dse != 0;
} }
struct tree_opt_pass pass_dse = { struct gimple_opt_pass pass_dse =
{
{
GIMPLE_PASS,
"dse", /* name */ "dse", /* name */
gate_dse, /* gate */ gate_dse, /* gate */
tree_ssa_dse, /* execute */ tree_ssa_dse, /* execute */
@ -648,8 +651,8 @@ struct tree_opt_pass pass_dse = {
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func TODO_dump_func
| TODO_ggc_collect | TODO_ggc_collect
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };
/* A very simple dead store pass eliminating write only local variables. /* A very simple dead store pass eliminating write only local variables.
@ -769,8 +772,10 @@ execute_simple_dse (void)
return todo; return todo;
} }
struct tree_opt_pass pass_simple_dse = struct gimple_opt_pass pass_simple_dse =
{ {
{
GIMPLE_PASS,
"sdse", /* name */ "sdse", /* name */
NULL, /* gate */ NULL, /* gate */
execute_simple_dse, /* execute */ execute_simple_dse, /* execute */
@ -782,6 +787,6 @@ struct tree_opt_pass pass_simple_dse =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -1081,7 +1081,10 @@ gate_forwprop (void)
return 1; return 1;
} }
struct tree_opt_pass pass_forwprop = { struct gimple_opt_pass pass_forwprop =
{
{
GIMPLE_PASS,
"forwprop", /* name */ "forwprop", /* name */
gate_forwprop, /* gate */ gate_forwprop, /* gate */
tree_ssa_forward_propagate_single_use_vars, /* execute */ tree_ssa_forward_propagate_single_use_vars, /* execute */
@ -1096,7 +1099,7 @@ struct tree_opt_pass pass_forwprop = {
TODO_dump_func TODO_dump_func
| TODO_ggc_collect | TODO_ggc_collect
| TODO_update_ssa | TODO_update_ssa
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -605,7 +605,10 @@ gate_ifcombine (void)
return 1; return 1;
} }
struct tree_opt_pass pass_tree_ifcombine = { struct gimple_opt_pass pass_tree_ifcombine =
{
{
GIMPLE_PASS,
"ifcombine", /* name */ "ifcombine", /* name */
gate_ifcombine, /* gate */ gate_ifcombine, /* gate */
tree_ssa_ifcombine, /* execute */ tree_ssa_ifcombine, /* execute */
@ -620,6 +623,6 @@ struct tree_opt_pass pass_tree_ifcombine = {
TODO_dump_func TODO_dump_func
| TODO_ggc_collect | TODO_ggc_collect
| TODO_update_ssa | TODO_update_ssa
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -253,8 +253,10 @@ gate_ch (void)
return flag_tree_ch != 0; return flag_tree_ch != 0;
} }
struct tree_opt_pass pass_ch = struct gimple_opt_pass pass_ch =
{ {
{
GIMPLE_PASS,
"ch", /* name */ "ch", /* name */
gate_ch, /* gate */ gate_ch, /* gate */
copy_loop_headers, /* execute */ copy_loop_headers, /* execute */
@ -267,6 +269,6 @@ struct tree_opt_pass pass_ch =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_cleanup_cfg | TODO_dump_func TODO_cleanup_cfg | TODO_dump_func
| TODO_verify_ssa, /* todo_flags_finish */ | TODO_verify_ssa /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -55,8 +55,10 @@ gate_tree_loop (void)
return flag_tree_loop_optimize != 0; return flag_tree_loop_optimize != 0;
} }
struct tree_opt_pass pass_tree_loop = struct gimple_opt_pass pass_tree_loop =
{ {
{
GIMPLE_PASS,
"loop", /* name */ "loop", /* name */
gate_tree_loop, /* gate */ gate_tree_loop, /* gate */
NULL, /* execute */ NULL, /* execute */
@ -68,8 +70,8 @@ struct tree_opt_pass pass_tree_loop =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
TODO_ggc_collect, /* todo_flags_start */ TODO_ggc_collect, /* todo_flags_start */
TODO_dump_func | TODO_verify_ssa | TODO_ggc_collect, /* todo_flags_finish */ TODO_dump_func | TODO_verify_ssa | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
/* Loop optimizer initialization. */ /* Loop optimizer initialization. */
@ -85,8 +87,10 @@ tree_ssa_loop_init (void)
return 0; return 0;
} }
struct tree_opt_pass pass_tree_loop_init = struct gimple_opt_pass pass_tree_loop_init =
{ {
{
GIMPLE_PASS,
"loopinit", /* name */ "loopinit", /* name */
NULL, /* gate */ NULL, /* gate */
tree_ssa_loop_init, /* execute */ tree_ssa_loop_init, /* execute */
@ -98,8 +102,8 @@ struct tree_opt_pass pass_tree_loop_init =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ TODO_dump_func | TODO_verify_loops /* todo_flags_finish */
0 /* letter */ }
}; };
/* Loop invariant motion pass. */ /* Loop invariant motion pass. */
@ -120,8 +124,10 @@ gate_tree_ssa_loop_im (void)
return flag_tree_loop_im != 0; return flag_tree_loop_im != 0;
} }
struct tree_opt_pass pass_lim = struct gimple_opt_pass pass_lim =
{ {
{
GIMPLE_PASS,
"lim", /* name */ "lim", /* name */
gate_tree_ssa_loop_im, /* gate */ gate_tree_ssa_loop_im, /* gate */
tree_ssa_loop_im, /* execute */ tree_ssa_loop_im, /* execute */
@ -133,8 +139,8 @@ struct tree_opt_pass pass_lim =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ TODO_dump_func | TODO_verify_loops /* todo_flags_finish */
0 /* letter */ }
}; };
/* Loop unswitching pass. */ /* Loop unswitching pass. */
@ -154,8 +160,10 @@ gate_tree_ssa_loop_unswitch (void)
return flag_unswitch_loops != 0; return flag_unswitch_loops != 0;
} }
struct tree_opt_pass pass_tree_unswitch = struct gimple_opt_pass pass_tree_unswitch =
{ {
{
GIMPLE_PASS,
"unswitch", /* name */ "unswitch", /* name */
gate_tree_ssa_loop_unswitch, /* gate */ gate_tree_ssa_loop_unswitch, /* gate */
tree_ssa_loop_unswitch, /* execute */ tree_ssa_loop_unswitch, /* execute */
@ -168,8 +176,8 @@ struct tree_opt_pass pass_tree_unswitch =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_ggc_collect | TODO_dump_func TODO_ggc_collect | TODO_dump_func
| TODO_verify_loops, /* todo_flags_finish */ | TODO_verify_loops /* todo_flags_finish */
0 /* letter */ }
}; };
/* Predictive commoning. */ /* Predictive commoning. */
@ -190,8 +198,10 @@ gate_tree_predictive_commoning (void)
return flag_predictive_commoning != 0; return flag_predictive_commoning != 0;
} }
struct tree_opt_pass pass_predcom = struct gimple_opt_pass pass_predcom =
{ {
{
GIMPLE_PASS,
"pcom", /* name */ "pcom", /* name */
gate_tree_predictive_commoning, /* gate */ gate_tree_predictive_commoning, /* gate */
run_tree_predictive_commoning, /* execute */ run_tree_predictive_commoning, /* execute */
@ -204,8 +214,8 @@ struct tree_opt_pass pass_predcom =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops TODO_dump_func | TODO_verify_loops
| TODO_update_ssa_only_virtuals, /* todo_flags_finish */ | TODO_update_ssa_only_virtuals /* todo_flags_finish */
0 /* letter */ }
}; };
/* Loop autovectorization. */ /* Loop autovectorization. */
@ -222,8 +232,10 @@ gate_tree_vectorize (void)
return flag_tree_vectorize && number_of_loops () > 1; return flag_tree_vectorize && number_of_loops () > 1;
} }
struct tree_opt_pass pass_vectorize = struct gimple_opt_pass pass_vectorize =
{ {
{
GIMPLE_PASS,
"vect", /* name */ "vect", /* name */
gate_tree_vectorize, /* gate */ gate_tree_vectorize, /* gate */
tree_vectorize, /* execute */ tree_vectorize, /* execute */
@ -236,8 +248,8 @@ struct tree_opt_pass pass_vectorize =
0, /* properties_destroyed */ 0, /* properties_destroyed */
TODO_verify_loops, /* todo_flags_start */ TODO_verify_loops, /* todo_flags_start */
TODO_dump_func | TODO_update_ssa TODO_dump_func | TODO_update_ssa
| TODO_ggc_collect, /* todo_flags_finish */ | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
/* Loop nest optimizations. */ /* Loop nest optimizations. */
@ -258,8 +270,10 @@ gate_tree_linear_transform (void)
return flag_tree_loop_linear != 0; return flag_tree_loop_linear != 0;
} }
struct tree_opt_pass pass_linear_transform = struct gimple_opt_pass pass_linear_transform =
{ {
{
GIMPLE_PASS,
"ltrans", /* name */ "ltrans", /* name */
gate_tree_linear_transform, /* gate */ gate_tree_linear_transform, /* gate */
tree_linear_transform, /* execute */ tree_linear_transform, /* execute */
@ -273,8 +287,8 @@ struct tree_opt_pass pass_linear_transform =
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops TODO_dump_func | TODO_verify_loops
| TODO_update_ssa_only_virtuals | TODO_update_ssa_only_virtuals
| TODO_ggc_collect, /* todo_flags_finish */ | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
/* Check the correctness of the data dependence analyzers. */ /* Check the correctness of the data dependence analyzers. */
@ -295,8 +309,10 @@ gate_check_data_deps (void)
return flag_check_data_deps != 0; 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 */ "ckdd", /* name */
gate_check_data_deps, /* gate */ gate_check_data_deps, /* gate */
check_data_deps, /* execute */ check_data_deps, /* execute */
@ -308,8 +324,8 @@ struct tree_opt_pass pass_check_data_deps =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */ TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };
/* Canonical induction variable creation pass. */ /* Canonical induction variable creation pass. */
@ -329,8 +345,10 @@ gate_tree_ssa_loop_ivcanon (void)
return flag_tree_loop_ivcanon != 0; return flag_tree_loop_ivcanon != 0;
} }
struct tree_opt_pass pass_iv_canon = struct gimple_opt_pass pass_iv_canon =
{ {
{
GIMPLE_PASS,
"ivcanon", /* name */ "ivcanon", /* name */
gate_tree_ssa_loop_ivcanon, /* gate */ gate_tree_ssa_loop_ivcanon, /* gate */
tree_ssa_loop_ivcanon, /* execute */ tree_ssa_loop_ivcanon, /* execute */
@ -342,8 +360,8 @@ struct tree_opt_pass pass_iv_canon =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ TODO_dump_func | TODO_verify_loops /* todo_flags_finish */
0 /* letter */ }
}; };
/* Propagation of constants using scev. */ /* Propagation of constants using scev. */
@ -354,8 +372,10 @@ gate_scev_const_prop (void)
return flag_tree_scev_cprop; return flag_tree_scev_cprop;
} }
struct tree_opt_pass pass_scev_cprop = struct gimple_opt_pass pass_scev_cprop =
{ {
{
GIMPLE_PASS,
"sccp", /* name */ "sccp", /* name */
gate_scev_const_prop, /* gate */ gate_scev_const_prop, /* gate */
scev_const_prop, /* execute */ scev_const_prop, /* execute */
@ -368,9 +388,9 @@ struct tree_opt_pass pass_scev_cprop =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_cleanup_cfg TODO_dump_func | TODO_cleanup_cfg
| TODO_update_ssa_only_virtuals, | TODO_update_ssa_only_virtuals
/* todo_flags_finish */ /* todo_flags_finish */
0 /* letter */ }
}; };
/* Remove empty loops. */ /* Remove empty loops. */
@ -384,8 +404,10 @@ tree_ssa_empty_loop (void)
return remove_empty_loops (); return remove_empty_loops ();
} }
struct tree_opt_pass pass_empty_loop = struct gimple_opt_pass pass_empty_loop =
{ {
{
GIMPLE_PASS,
"empty", /* name */ "empty", /* name */
NULL, /* gate */ NULL, /* gate */
tree_ssa_empty_loop, /* execute */ tree_ssa_empty_loop, /* execute */
@ -398,8 +420,8 @@ struct tree_opt_pass pass_empty_loop =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops TODO_dump_func | TODO_verify_loops
| TODO_ggc_collect, /* todo_flags_finish */ | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
/* Record bounds on numbers of iterations of loops. */ /* Record bounds on numbers of iterations of loops. */
@ -415,8 +437,10 @@ tree_ssa_loop_bounds (void)
return 0; return 0;
} }
struct tree_opt_pass pass_record_bounds = struct gimple_opt_pass pass_record_bounds =
{ {
{
GIMPLE_PASS,
NULL, /* name */ NULL, /* name */
NULL, /* gate */ NULL, /* gate */
tree_ssa_loop_bounds, /* execute */ tree_ssa_loop_bounds, /* execute */
@ -428,8 +452,8 @@ struct tree_opt_pass pass_record_bounds =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
0, /* todo_flags_finish */ 0 /* todo_flags_finish */
0 /* letter */ }
}; };
/* Complete unrolling of loops. */ /* Complete unrolling of loops. */
@ -451,8 +475,10 @@ gate_tree_complete_unroll (void)
return true; return true;
} }
struct tree_opt_pass pass_complete_unroll = struct gimple_opt_pass pass_complete_unroll =
{ {
{
GIMPLE_PASS,
"cunroll", /* name */ "cunroll", /* name */
gate_tree_complete_unroll, /* gate */ gate_tree_complete_unroll, /* gate */
tree_complete_unroll, /* execute */ tree_complete_unroll, /* execute */
@ -465,8 +491,8 @@ struct tree_opt_pass pass_complete_unroll =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops TODO_dump_func | TODO_verify_loops
| TODO_ggc_collect, /* todo_flags_finish */ | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
/* Parallelization. */ /* Parallelization. */
@ -488,8 +514,10 @@ tree_parallelize_loops (void)
return 0; return 0;
} }
struct tree_opt_pass pass_parallelize_loops = struct gimple_opt_pass pass_parallelize_loops =
{ {
{
GIMPLE_PASS,
"parloops", /* name */ "parloops", /* name */
gate_tree_parallelize_loops, /* gate */ gate_tree_parallelize_loops, /* gate */
tree_parallelize_loops, /* execute */ tree_parallelize_loops, /* execute */
@ -501,8 +529,8 @@ struct tree_opt_pass pass_parallelize_loops =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ TODO_dump_func | TODO_verify_loops /* todo_flags_finish */
0 /* letter */ }
}; };
/* Prefetching. */ /* Prefetching. */
@ -522,8 +550,10 @@ gate_tree_ssa_loop_prefetch (void)
return flag_prefetch_loop_arrays != 0; return flag_prefetch_loop_arrays != 0;
} }
struct tree_opt_pass pass_loop_prefetch = struct gimple_opt_pass pass_loop_prefetch =
{ {
{
GIMPLE_PASS,
"aprefetch", /* name */ "aprefetch", /* name */
gate_tree_ssa_loop_prefetch, /* gate */ gate_tree_ssa_loop_prefetch, /* gate */
tree_ssa_loop_prefetch, /* execute */ tree_ssa_loop_prefetch, /* execute */
@ -535,8 +565,8 @@ struct tree_opt_pass pass_loop_prefetch =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops, /* todo_flags_finish */ TODO_dump_func | TODO_verify_loops /* todo_flags_finish */
0 /* letter */ }
}; };
/* Induction variable optimizations. */ /* Induction variable optimizations. */
@ -557,8 +587,10 @@ gate_tree_ssa_loop_ivopts (void)
return flag_ivopts != 0; return flag_ivopts != 0;
} }
struct tree_opt_pass pass_iv_optimize = struct gimple_opt_pass pass_iv_optimize =
{ {
{
GIMPLE_PASS,
"ivopts", /* name */ "ivopts", /* name */
gate_tree_ssa_loop_ivopts, /* gate */ gate_tree_ssa_loop_ivopts, /* gate */
tree_ssa_loop_ivopts, /* execute */ tree_ssa_loop_ivopts, /* execute */
@ -571,8 +603,8 @@ struct tree_opt_pass pass_iv_optimize =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_verify_loops TODO_dump_func | TODO_verify_loops
| TODO_update_ssa | TODO_ggc_collect, /* todo_flags_finish */ | TODO_update_ssa | TODO_ggc_collect /* todo_flags_finish */
0 /* letter */ }
}; };
/* Loop optimizer finalization. */ /* Loop optimizer finalization. */
@ -586,8 +618,10 @@ tree_ssa_loop_done (void)
return 0; return 0;
} }
struct tree_opt_pass pass_tree_loop_done = struct gimple_opt_pass pass_tree_loop_done =
{ {
{
GIMPLE_PASS,
"loopdone", /* name */ "loopdone", /* name */
NULL, /* gate */ NULL, /* gate */
tree_ssa_loop_done, /* execute */ tree_ssa_loop_done, /* execute */
@ -599,6 +633,6 @@ struct tree_opt_pass pass_tree_loop_done =
0, /* properties_provided */ 0, /* properties_provided */
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_cleanup_cfg | TODO_dump_func, /* todo_flags_finish */ TODO_cleanup_cfg | TODO_dump_func /* todo_flags_finish */
0 /* letter */ }
}; };

View File

@ -555,8 +555,10 @@ execute_cse_reciprocals (void)
return 0; return 0;
} }
struct tree_opt_pass pass_cse_reciprocals = struct gimple_opt_pass pass_cse_reciprocals =
{ {
{
GIMPLE_PASS,
"recip", /* name */ "recip", /* name */
gate_cse_reciprocals, /* gate */ gate_cse_reciprocals, /* gate */
execute_cse_reciprocals, /* execute */ execute_cse_reciprocals, /* execute */
@ -569,8 +571,8 @@ struct tree_opt_pass pass_cse_reciprocals =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_update_ssa | TODO_verify_ssa TODO_dump_func | TODO_update_ssa | TODO_verify_ssa
| TODO_verify_stmts, /* todo_flags_finish */ | TODO_verify_stmts /* todo_flags_finish */
0 /* letter */ }
}; };
/* Records an occurrence at statement USE_STMT in the vector of trees /* Records an occurrence at statement USE_STMT in the vector of trees
@ -761,8 +763,10 @@ gate_cse_sincos (void)
&& optimize; && optimize;
} }
struct tree_opt_pass pass_cse_sincos = struct gimple_opt_pass pass_cse_sincos =
{ {
{
GIMPLE_PASS,
"sincos", /* name */ "sincos", /* name */
gate_cse_sincos, /* gate */ gate_cse_sincos, /* gate */
execute_cse_sincos, /* execute */ execute_cse_sincos, /* execute */
@ -775,8 +779,8 @@ struct tree_opt_pass pass_cse_sincos =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_update_ssa | TODO_verify_ssa TODO_dump_func | TODO_update_ssa | TODO_verify_ssa
| TODO_verify_stmts, /* todo_flags_finish */ | TODO_verify_stmts /* todo_flags_finish */
0 /* letter */ }
}; };
/* Find all expressions in the form of sqrt(a/b) and /* 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; 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 */ "rsqrt", /* name */
gate_convert_to_rsqrt, /* gate */ gate_convert_to_rsqrt, /* gate */
execute_convert_to_rsqrt, /* execute */ execute_convert_to_rsqrt, /* execute */
@ -867,6 +873,6 @@ struct tree_opt_pass pass_convert_to_rsqrt =
0, /* properties_destroyed */ 0, /* properties_destroyed */
0, /* todo_flags_start */ 0, /* todo_flags_start */
TODO_dump_func | TODO_update_ssa | TODO_verify_ssa TODO_dump_func | TODO_update_ssa | TODO_verify_ssa
| TODO_verify_stmts, /* todo_flags_finish */ | TODO_verify_stmts /* todo_flags_finish */
0 /* letter */ }
}; };

Some files were not shown because too many files have changed in this diff Show More