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>
PR middle-end/35609
@ -89,29 +208,6 @@
* gimplify.c (gimplify_expr): Gimplify second operand of
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>
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 */
gate_auto_inc_dec, /* gate */
rest_of_handle_auto_inc_dec, /* execute */
@ -1555,6 +1557,6 @@ struct tree_opt_pass pass_inc_dec =
0, /* todo_flags_start */
TODO_dump_func |
TODO_df_finish, /* todo_flags_finish */
0 /* letter */
}
};

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1070,7 +1070,7 @@ cgraph_add_new_function (tree fndecl, bool lowered)
tree_lowering_passes (fndecl);
bitmap_obstack_initialize (NULL);
if (!gimple_in_ssa_p (DECL_STRUCT_FUNCTION (fndecl)) && optimize)
execute_pass_list (pass_early_local_passes.sub);
execute_pass_list (pass_early_local_passes.pass.sub);
bitmap_obstack_release (NULL);
tree_rest_of_compilation (fndecl);
pop_cfun ();

View File

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

View File

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

View File

@ -472,8 +472,10 @@ rest_of_handle_stack_adjustments (void)
return 0;
}
struct tree_opt_pass pass_stack_adjustments =
struct rtl_opt_pass pass_stack_adjustments =
{
{
RTL_PASS,
"csa", /* name */
gate_handle_stack_adjustments, /* gate */
rest_of_handle_stack_adjustments, /* execute */
@ -488,6 +490,6 @@ struct tree_opt_pass pass_stack_adjustments =
TODO_df_finish | TODO_verify_rtl_sharing |
TODO_dump_func |
TODO_ggc_collect, /* todo_flags_finish */
0 /* letter */
}
};

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1426,8 +1426,10 @@ cgraph_gate_inlining (void)
return flag_inline_trees;
}
struct tree_opt_pass pass_ipa_inline =
struct simple_ipa_opt_pass pass_ipa_inline =
{
{
SIMPLE_IPA_PASS,
"inline", /* name */
cgraph_gate_inlining, /* gate */
cgraph_decide_inlining, /* execute */
@ -1440,8 +1442,8 @@ struct tree_opt_pass pass_ipa_inline =
0, /* properties_destroyed */
TODO_remove_functions, /* todo_flags_finish */
TODO_dump_cgraph | TODO_dump_func
| TODO_remove_functions, /* todo_flags_finish */
0 /* letter */
| TODO_remove_functions /* todo_flags_finish */
}
};
/* Because inlining might remove no-longer reachable nodes, we need to
@ -1479,8 +1481,10 @@ cgraph_gate_early_inlining (void)
return flag_inline_trees && flag_early_inlining;
}
struct tree_opt_pass pass_early_inline =
struct gimple_opt_pass pass_early_inline =
{
{
GIMPLE_PASS,
"einline", /* name */
cgraph_gate_early_inlining, /* gate */
cgraph_early_inlining, /* execute */
@ -1492,8 +1496,8 @@ struct tree_opt_pass pass_early_inline =
PROP_cfg, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_dump_func, /* todo_flags_finish */
0 /* letter */
TODO_dump_func /* todo_flags_finish */
}
};
/* When inlining shall be performed. */
@ -1507,8 +1511,10 @@ cgraph_gate_ipa_early_inlining (void)
/* IPA pass wrapper for early inlining pass. We need to run early inlining
before tree profiling so we have stand alone IPA pass for doing so. */
struct tree_opt_pass pass_ipa_early_inline =
struct simple_ipa_opt_pass pass_ipa_early_inline =
{
{
SIMPLE_IPA_PASS,
"einline_ipa", /* name */
cgraph_gate_ipa_early_inlining, /* gate */
NULL, /* execute */
@ -1520,8 +1526,8 @@ struct tree_opt_pass pass_ipa_early_inline =
PROP_cfg, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_dump_cgraph, /* todo_flags_finish */
0 /* letter */
TODO_dump_cgraph /* todo_flags_finish */
}
};
/* Compute parameters of functions used by inliner. */
@ -1554,8 +1560,10 @@ gate_inline_passes (void)
return flag_inline_trees;
}
struct tree_opt_pass pass_inline_parameters =
struct gimple_opt_pass pass_inline_parameters =
{
{
GIMPLE_PASS,
NULL, /* name */
gate_inline_passes, /* gate */
compute_inline_parameters, /* execute */
@ -1567,8 +1575,8 @@ struct tree_opt_pass pass_inline_parameters =
PROP_cfg, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
0, /* todo_flags_finish */
0 /* letter */
0 /* todo_flags_finish */
}
};
/* Apply inline plan to the function. */
@ -1609,8 +1617,10 @@ apply_inline (void)
return todo | execute_fixup_cfg ();
}
struct tree_opt_pass pass_apply_inline =
struct gimple_opt_pass pass_apply_inline =
{
{
GIMPLE_PASS,
"apply_inline", /* name */
NULL, /* gate */
apply_inline, /* execute */
@ -1623,8 +1633,8 @@ struct tree_opt_pass pass_apply_inline =
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_dump_func | TODO_verify_flow
| TODO_verify_stmts, /* todo_flags_finish */
0 /* letter */
| TODO_verify_stmts /* todo_flags_finish */
}
};
#include "gt-ipa-inline.h"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

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

View File

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

View File

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

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
from anywhere in compilation. */
struct tree_opt_pass *current_pass;
struct opt_pass *current_pass;
/* Call from anywhere to find out what pass this is. Useful for
printing out debugging information deep inside an service
@ -246,19 +246,19 @@ finish_optimization_passes (void)
timevar_push (TV_DUMP);
if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities)
{
dump_file = dump_begin (pass_profile.static_pass_number, NULL);
dump_file = dump_begin (pass_profile.pass.static_pass_number, NULL);
end_branch_prob ();
if (dump_file)
dump_end (pass_profile.static_pass_number, dump_file);
dump_end (pass_profile.pass.static_pass_number, dump_file);
}
if (optimize > 0)
{
dump_file = dump_begin (pass_combine.static_pass_number, NULL);
dump_file = dump_begin (pass_combine.pass.static_pass_number, NULL);
if (dump_file)
{
dump_combine_total_stats (dump_file);
dump_end (pass_combine.static_pass_number, dump_file);
dump_end (pass_combine.pass.static_pass_number, dump_file);
}
}
@ -284,8 +284,10 @@ gate_rest_of_compilation (void)
return !(rtl_dump_and_exit || flag_syntax_only || errorcount || sorrycount);
}
struct tree_opt_pass pass_rest_of_compilation =
struct gimple_opt_pass pass_rest_of_compilation =
{
{
GIMPLE_PASS,
NULL, /* name */
gate_rest_of_compilation, /* gate */
NULL, /* execute */
@ -297,8 +299,8 @@ struct tree_opt_pass pass_rest_of_compilation =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_ggc_collect, /* todo_flags_finish */
0 /* letter */
TODO_ggc_collect /* todo_flags_finish */
}
};
static bool
@ -307,8 +309,10 @@ gate_postreload (void)
return reload_completed;
}
struct tree_opt_pass pass_postreload =
struct rtl_opt_pass pass_postreload =
{
{
RTL_PASS,
NULL, /* name */
gate_postreload, /* gate */
NULL, /* execute */
@ -320,21 +324,21 @@ struct tree_opt_pass pass_postreload =
0, /* properties_provided */
0, /* properties_destroyed */
0, /* todo_flags_start */
TODO_ggc_collect | TODO_verify_rtl_sharing, /* todo_flags_finish */
0 /* letter */
TODO_ggc_collect | TODO_verify_rtl_sharing /* todo_flags_finish */
}
};
/* The root of the compilation pass tree, once constructed. */
struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes;
struct opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes;
/* Iterate over the pass tree allocating dump file numbers. We want
to do this depth first, and independent of whether the pass is
enabled or not. */
static void
register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties)
register_one_dump_file (struct opt_pass *pass, bool ipa, int properties)
{
char *dot_name, *flag_name, *glob_name;
const char *prefix;
@ -358,13 +362,13 @@ register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties)
flag_name = concat (prefix, pass->name, num, NULL);
glob_name = concat (prefix, pass->name, NULL);
pass->static_pass_number = dump_register (dot_name, flag_name, glob_name,
flags, pass->letter);
flags);
}
/* Recursive worker function for register_dump_files. */
static int
register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties)
register_dump_files_1 (struct opt_pass *pass, bool ipa, int properties)
{
do
{
@ -398,7 +402,7 @@ register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties)
the pipeline. */
static void
register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties)
register_dump_files (struct opt_pass *pass, bool ipa, int properties)
{
pass->properties_required |= properties;
register_dump_files_1 (pass, ipa, properties);
@ -407,14 +411,14 @@ register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties)
/* Add a pass to the pass list. Duplicate the pass if it's already
in the list. */
static struct tree_opt_pass **
next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
static struct opt_pass **
next_pass_1 (struct opt_pass **list, struct opt_pass *pass)
{
/* A nonzero static_pass_number indicates that the
pass is already in the list. */
if (pass->static_pass_number)
{
struct tree_opt_pass *new;
struct opt_pass *new;
new = xmalloc (sizeof (*new));
memcpy (new, pass, sizeof (*new));
@ -467,9 +471,9 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
void
init_optimization_passes (void)
{
struct tree_opt_pass **p;
struct opt_pass **p;
#define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS))
#define NEXT_PASS(PASS) (p = next_pass_1 (p, &((PASS).pass)))
/* All passes needed to lower the function into shape optimizers can
operate on. These passes are always run first on the function, but
@ -497,21 +501,21 @@ init_optimization_passes (void)
NEXT_PASS (pass_ipa_function_and_variable_visibility);
NEXT_PASS (pass_ipa_early_inline);
{
struct tree_opt_pass **p = &pass_ipa_early_inline.sub;
struct opt_pass **p = &pass_ipa_early_inline.pass.sub;
NEXT_PASS (pass_early_inline);
NEXT_PASS (pass_inline_parameters);
NEXT_PASS (pass_rebuild_cgraph_edges);
}
NEXT_PASS (pass_early_local_passes);
{
struct tree_opt_pass **p = &pass_early_local_passes.sub;
struct opt_pass **p = &pass_early_local_passes.pass.sub;
NEXT_PASS (pass_tree_profile);
NEXT_PASS (pass_cleanup_cfg);
NEXT_PASS (pass_init_datastructures);
NEXT_PASS (pass_expand_omp);
NEXT_PASS (pass_all_early_optimizations);
{
struct tree_opt_pass **p = &pass_all_early_optimizations.sub;
struct opt_pass **p = &pass_all_early_optimizations.pass.sub;
NEXT_PASS (pass_referenced_vars);
NEXT_PASS (pass_reset_cc_flags);
NEXT_PASS (pass_build_ssa);
@ -555,7 +559,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_apply_inline);
NEXT_PASS (pass_all_optimizations);
{
struct tree_opt_pass **p = &pass_all_optimizations.sub;
struct opt_pass **p = &pass_all_optimizations.pass.sub;
NEXT_PASS (pass_create_structure_vars);
/* ??? pass_build_alias is a dummy pass that ensures that we
execute TODO_rebuild_alias at this point even if
@ -614,7 +618,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_sink_code);
NEXT_PASS (pass_tree_loop);
{
struct tree_opt_pass **p = &pass_tree_loop.sub;
struct opt_pass **p = &pass_tree_loop.pass.sub;
NEXT_PASS (pass_tree_loop_init);
NEXT_PASS (pass_copy_prop);
NEXT_PASS (pass_dce_loop);
@ -631,7 +635,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_if_conversion);
NEXT_PASS (pass_vectorize);
{
struct tree_opt_pass **p = &pass_vectorize.sub;
struct opt_pass **p = &pass_vectorize.pass.sub;
NEXT_PASS (pass_lower_vector_ssa);
NEXT_PASS (pass_dce_loop);
}
@ -685,7 +689,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_expand);
NEXT_PASS (pass_rest_of_compilation);
{
struct tree_opt_pass **p = &pass_rest_of_compilation.sub;
struct opt_pass **p = &pass_rest_of_compilation.pass.sub;
NEXT_PASS (pass_init_function);
NEXT_PASS (pass_jump);
NEXT_PASS (pass_rtl_eh);
@ -705,7 +709,7 @@ init_optimization_passes (void)
efficiently. */
NEXT_PASS (pass_loop2);
{
struct tree_opt_pass **p = &pass_loop2.sub;
struct opt_pass **p = &pass_loop2.pass.sub;
NEXT_PASS (pass_rtl_loop_init);
NEXT_PASS (pass_rtl_move_loop_invariants);
NEXT_PASS (pass_rtl_unswitch);
@ -743,7 +747,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_subregs_of_mode_finish);
NEXT_PASS (pass_postreload);
{
struct tree_opt_pass **p = &pass_postreload.sub;
struct opt_pass **p = &pass_postreload.pass.sub;
NEXT_PASS (pass_postreload_cse);
NEXT_PASS (pass_gcse2);
NEXT_PASS (pass_split_after_reload);
@ -764,7 +768,7 @@ init_optimization_passes (void)
NEXT_PASS (pass_sched2);
NEXT_PASS (pass_stack_regs);
{
struct tree_opt_pass **p = &pass_stack_regs.sub;
struct opt_pass **p = &pass_stack_regs.pass.sub;
NEXT_PASS (pass_split_before_regstack);
NEXT_PASS (pass_stack_regs_run);
}
@ -1056,13 +1060,13 @@ verify_curr_properties (void *data)
static void
update_properties_after_pass (void *data)
{
struct tree_opt_pass *pass = data;
struct opt_pass *pass = data;
cfun->curr_properties = (cfun->curr_properties | pass->properties_provided)
& ~pass->properties_destroyed;
}
static bool
execute_one_pass (struct tree_opt_pass *pass)
execute_one_pass (struct opt_pass *pass)
{
bool initializing_dump;
unsigned int todo_after = 0;
@ -1169,7 +1173,7 @@ execute_one_pass (struct tree_opt_pass *pass)
}
void
execute_pass_list (struct tree_opt_pass *pass)
execute_pass_list (struct opt_pass *pass)
{
do
{
@ -1183,7 +1187,7 @@ execute_pass_list (struct tree_opt_pass *pass)
/* Same as execute_pass_list but assume that subpasses of IPA passes
are local passes. */
void
execute_ipa_pass_list (struct tree_opt_pass *pass)
execute_ipa_pass_list (struct opt_pass *pass)
{
do
{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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>
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-options "-O2 -dav" } */
/* { dg-options "-O2 -dv -fdump-rtl-all" } */
int foo (void)
{

View File

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

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 "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-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
expect it to fail. */
/* { dg-require-effective-target hard_float } */
/* { dg-options "-O2 -funroll-loops -funsafe-math-optimizations -fvariable-expansion-in-unroller -dL" } */
/* { dg-options "-O2 -funroll-loops -funsafe-math-optimizations -fvariable-expansion-in-unroller -fdump-rtl-loop2_unroll" } */
extern void abort (void);
extern void exit (int);

View File

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

View File

@ -2,7 +2,7 @@
/* We don't (and don't want to) perform this optimisation on soft-float
targets, where each addition is a library call. */
/* { dg-require-effective-target hard_float } */
/* { dg-options "-O2 -funroll-loops --fast-math -fvariable-expansion-in-unroller -dL" } */
/* { dg-options "-O2 -funroll-loops --fast-math -fvariable-expansion-in-unroller -fdump-rtl-loop2_unroll" } */
extern void abort (void);

View File

@ -1,5 +1,5 @@
/* { dg-do run { target { powerpc*-*-* && powerpc_altivec_ok } } }} */
/* { dg-options "-O2 -funroll-loops -ffast-math -fvariable-expansion-in-unroller -maltivec -dL" } */
/* { dg-options "-O2 -funroll-loops -ffast-math -fvariable-expansion-in-unroller -maltivec -fdump-rtl-loop2" } */
#include "altivec.h"
extern void abort (void);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -831,7 +831,7 @@ static const struct dump_option_value_info dump_options[] =
unsigned int
dump_register (const char *suffix, const char *swtch, const char *glob,
int flags, int letter)
int flags)
{
static int next_dump = FIRST_AUTO_NUMBERED_DUMP;
int num = next_dump++;
@ -855,7 +855,6 @@ dump_register (const char *suffix, const char *swtch, const char *glob,
extra_dump_files[this].glob = glob;
extra_dump_files[this].flags = flags;
extra_dump_files[this].num = num;
extra_dump_files[this].letter = letter;
return this + TDI_end;
}

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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