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:
parent
8cb3ee3785
commit
8ddbbcaea4
116 changed files with 1405 additions and 930 deletions
142
gcc/ChangeLog
142
gcc/ChangeLog
|
@ -1,3 +1,122 @@
|
|||
2008-03-19 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
PR other/35094
|
||||
* toplev.c (decode_d_option): Handle all CPP flags.
|
||||
* tree-vrp.c: Update tree_pass descriptors.
|
||||
* regrename.c: Update tree_pass descriptors.
|
||||
* fwprop.c: Update tree_pass descriptors.
|
||||
* doc/invoke.texi: Remove documentation of dropped -d? flags.
|
||||
* tree-into-ssa.c: Update tree_pass descriptors.
|
||||
* tree-dump.c: Update tree_pass descriptors.
|
||||
* tree-complex.c: Update tree_pass descriptors.
|
||||
* tree-dump.h: Update tree_pass descriptors.
|
||||
* see.c: Update tree_pass descriptors.
|
||||
* cgraphbuild.c: Update tree_pass descriptors.
|
||||
* tracer.c: Update tree_pass descriptors.
|
||||
* tree-loop-distribution.c: Update tree_pass descriptors.
|
||||
* cgraph.c: Update tree_pass descriptors.
|
||||
* postreload-gcse.c: Update tree_pass descriptors.
|
||||
* postreload.c: Update tree_pass descriptors.
|
||||
* tree-ssa-loop-ch.c: Update tree_pass descriptors.
|
||||
* tree-tailcall.c: Update tree_pass descriptors.
|
||||
* tree-pass.h (tree_opt_pass): Rename to ...
|
||||
(opt_pass) ... this one; add "type" field and remove letter field.
|
||||
(gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
|
||||
(execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
|
||||
all_lowering_passes): Update declaration.
|
||||
* ipa-cp.c: Update tree_pass descriptors.
|
||||
* final.c: Update tree_pass descriptors.
|
||||
* omp-low.c: Update tree_pass descriptors.
|
||||
* tree-ssa-dse.c: Update tree_pass descriptors.
|
||||
* ipa-reference.c: Update tree_pass descriptors.
|
||||
* tree-ssa-uncprop.c: Update tree_pass descriptors.
|
||||
* auto-inc-dec.c: Update tree_pass descriptors.
|
||||
* reorg.c: Update tree_pass descriptors.
|
||||
* cgraphunit.c: Update tree_pass descriptors.
|
||||
* tree-ssa-copyrename.c: Update tree_pass descriptors.
|
||||
* tree-ssa-ccp.c: Update tree_pass descriptors.
|
||||
* df-core.c: Update tree_pass descriptors.
|
||||
* mode-switching.c: Update tree_pass descriptors.
|
||||
* tree-nomudflap.c: Update tree_pass descriptors.
|
||||
* modulo-sched.c: Update tree_pass descriptors.
|
||||
* ipa-pure-const.c: Update tree_pass descriptors.
|
||||
* cse.c: Update tree_pass descriptors.
|
||||
* web.c: Update tree_pass descriptors.
|
||||
* tree-stdarg.c: Update tree_pass descriptors.
|
||||
* tree-ssa-math-opts.c: Update tree_pass descriptors.
|
||||
* tree-ssa-dom.c: Update tree_pass descriptors.
|
||||
* tree-nrv.c: Update tree_pass descriptors.
|
||||
* tree-ssa-alias.c: Update tree_pass descriptors.
|
||||
* loop-init.c: Update tree_pass descriptors.
|
||||
* gimple-low.c: Update tree_pass descriptors.
|
||||
* ipa-inline.c: Update tree_pass descriptors.
|
||||
* tree-ssa-sink.c: Update tree_pass descriptors.
|
||||
* global.c: Update tree_pass descriptors.
|
||||
* ifcvt.c: Update tree_pass descriptors.
|
||||
* jump.c: Update tree_pass descriptors.
|
||||
* predict.c: Update tree_pass descriptors.
|
||||
* tree-ssa-loop.c: Update tree_pass descriptors.
|
||||
* recog.c: Update tree_pass descriptors.
|
||||
* dse.c: Update tree_pass descriptors.
|
||||
* tree-ssa-ifcombine.c: Update tree_pass descriptors.
|
||||
* tree-eh.c: Update tree_pass descriptors.
|
||||
* regmove.c: Update tree_pass descriptors.
|
||||
* local-alloc.c
|
||||
* function.c: Update tree_pass descriptors.
|
||||
* tree-vectorizer.c: Update tree_pass descriptors.
|
||||
* gcse.c: Update tree_pass descriptors.
|
||||
* ipa-type-escape.c: Update tree_pass descriptors.
|
||||
* tree-if-conv.c: Update tree_pass descriptors.
|
||||
* init-regs.c: Update tree_pass descriptors.
|
||||
* ipa.c: Update tree_pass descriptors.
|
||||
* tree-ssa-phiopt.c: Update tree_pass descriptors.
|
||||
* rtl-factoring.c: Update tree_pass descriptors.
|
||||
* lower-subreg.c: Update tree_pass descriptors.
|
||||
* bt-load.c: Update tree_pass descriptors.
|
||||
* tree-dfa.c: Update tree_pass descriptors.
|
||||
* except.c: Update tree_pass descriptors.
|
||||
* emit-rtl.c: Update tree_pass descriptors.
|
||||
* cfgexpand.c: Update tree_pass descriptors.
|
||||
* tree-cfgcleanup.c: Update tree_pass descriptors.
|
||||
* cfgcleanup.c: Update tree_pass descriptors.
|
||||
* tree-ssa-pre.c: Update tree_pass descriptors.
|
||||
* tree-sra.c: Update tree_pass descriptors.
|
||||
* tree-mudflap.c: Update tree_pass descriptors.
|
||||
* tree-ssa-copy.c: Update tree_pass descriptors.
|
||||
* cfglayout.c: Update tree_pass descriptors.
|
||||
* tree-ssa-forwprop.c: Update tree_pass descriptors.
|
||||
* tree-ssa-dce.c: Update tree_pass descriptors.
|
||||
* tree-ssa.c: Update tree_pass descriptors.
|
||||
* regclass.c: Update tree_pass descriptors.
|
||||
* integrate.c: Update tree_pass descriptors.
|
||||
* tree-optimize.c: Update tree_pass descriptors.
|
||||
* tree-ssa-phiprop.c: Update tree_pass descriptors.
|
||||
* tree-object-size.c: Update tree_pass descriptors.
|
||||
* combine.c: Update tree_pass descriptors.
|
||||
* tree-outof-ssa.c: Update tree_pass descriptors.
|
||||
* bb-reorder.c: Update tree_pass descriptors.
|
||||
* stack-ptr-mod.c: Update tree_pass descriptors.
|
||||
* var-tracking.c: Update tree_pass descriptors.
|
||||
* tree-profile.c: Update tree_pass descriptors.
|
||||
* tree-vect-generic.c: Update tree_pass descriptors.
|
||||
* reg-stack.c: Update tree_pass descriptors.
|
||||
* sched-rgn.c: Update tree_pass descriptors.
|
||||
* tree-ssa-structalias.c: Update tree_pass descriptors.
|
||||
* tree-cfg.c: Update tree_pass descriptors.
|
||||
* passes.c (current_pass): Update declaration.
|
||||
(finish_optimization_passes): Update.
|
||||
(all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
|
||||
(register_one_dump_file, register_dump_files_1, next_pass_1):
|
||||
Update arguments.
|
||||
(init_optimization_passes): Update handling of new types.
|
||||
(execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
|
||||
* ipa-struct-reorg.c: Update tree_pass descriptors.
|
||||
* tree-ssa-reassoc.c: Update tree_pass descriptors.
|
||||
* combine-stack-adj.c: Update tree_pass descriptors.
|
||||
* cfgrtl.c: Update tree_pass descriptors.
|
||||
* dce.c: Update tree_pass descriptors.
|
||||
* tree-ssanames.c: Update tree_pass descriptors.
|
||||
|
||||
2008-03-19 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35609
|
||||
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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 ();
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
14
gcc/cse.c
14
gcc/cse.c
|
@ -7011,8 +7011,10 @@ rest_of_handle_cse (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_cse =
|
||||
struct rtl_opt_pass pass_cse =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"cse1", /* name */
|
||||
gate_handle_cse, /* gate */
|
||||
rest_of_handle_cse, /* execute */
|
||||
|
@ -7028,7 +7030,7 @@ struct tree_opt_pass pass_cse =
|
|||
TODO_dump_func |
|
||||
TODO_ggc_collect |
|
||||
TODO_verify_flow, /* todo_flags_finish */
|
||||
's' /* letter */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -7072,8 +7074,10 @@ rest_of_handle_cse2 (void)
|
|||
}
|
||||
|
||||
|
||||
struct tree_opt_pass pass_cse2 =
|
||||
struct rtl_opt_pass pass_cse2 =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"cse2", /* name */
|
||||
gate_handle_cse2, /* gate */
|
||||
rest_of_handle_cse2, /* execute */
|
||||
|
@ -7088,7 +7092,7 @@ struct tree_opt_pass pass_cse2 =
|
|||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func |
|
||||
TODO_ggc_collect |
|
||||
TODO_verify_flow, /* todo_flags_finish */
|
||||
't' /* letter */
|
||||
TODO_verify_flow /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
16
gcc/dce.c
16
gcc/dce.c
|
@ -567,8 +567,10 @@ gate_ud_dce (void)
|
|||
&& dbg_cnt (dce_ud);
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_ud_rtl_dce =
|
||||
struct rtl_opt_pass pass_ud_rtl_dce =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"dce", /* name */
|
||||
gate_ud_dce, /* gate */
|
||||
rest_of_handle_ud_dce, /* execute */
|
||||
|
@ -582,8 +584,8 @@ struct tree_opt_pass pass_ud_rtl_dce =
|
|||
0, /* todo_flags_start */
|
||||
TODO_dump_func |
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'w' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -853,8 +855,10 @@ gate_fast_dce (void)
|
|||
&& dbg_cnt (dce_fast);
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_fast_rtl_dce =
|
||||
struct rtl_opt_pass pass_fast_rtl_dce =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"dce", /* name */
|
||||
gate_fast_dce, /* gate */
|
||||
rest_of_handle_fast_dce, /* execute */
|
||||
|
@ -868,6 +872,6 @@ struct tree_opt_pass pass_fast_rtl_dce =
|
|||
0, /* todo_flags_start */
|
||||
TODO_dump_func |
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'w' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
16
gcc/dse.c
16
gcc/dse.c
|
@ -3303,8 +3303,10 @@ gate_dse2 (void)
|
|||
&& dbg_cnt (dse2);
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_rtl_dse1 =
|
||||
struct rtl_opt_pass pass_rtl_dse1 =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"dse1", /* name */
|
||||
gate_dse1, /* gate */
|
||||
rest_of_handle_dse, /* execute */
|
||||
|
@ -3318,12 +3320,14 @@ struct tree_opt_pass pass_rtl_dse1 =
|
|||
0, /* todo_flags_start */
|
||||
TODO_dump_func |
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'w' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
struct tree_opt_pass pass_rtl_dse2 =
|
||||
struct rtl_opt_pass pass_rtl_dse2 =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"dse2", /* name */
|
||||
gate_dse2, /* gate */
|
||||
rest_of_handle_dse, /* execute */
|
||||
|
@ -3337,6 +3341,6 @@ struct tree_opt_pass pass_rtl_dse2 =
|
|||
0, /* todo_flags_start */
|
||||
TODO_dump_func |
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'w' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
20
gcc/except.c
20
gcc/except.c
|
@ -2843,8 +2843,10 @@ set_nothrow_function_flags (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_set_nothrow_function_flags =
|
||||
struct rtl_opt_pass pass_set_nothrow_function_flags =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
NULL, /* name */
|
||||
NULL, /* gate */
|
||||
set_nothrow_function_flags, /* execute */
|
||||
|
@ -2857,7 +2859,7 @@ struct tree_opt_pass pass_set_nothrow_function_flags =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
0, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -3372,8 +3374,10 @@ convert_to_eh_region_ranges (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_convert_to_eh_region_ranges =
|
||||
struct rtl_opt_pass pass_convert_to_eh_region_ranges =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"eh-ranges", /* name */
|
||||
NULL, /* gate */
|
||||
convert_to_eh_region_ranges, /* execute */
|
||||
|
@ -3386,7 +3390,7 @@ struct tree_opt_pass pass_convert_to_eh_region_ranges =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -3995,8 +3999,10 @@ rest_of_handle_eh (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_rtl_eh =
|
||||
struct rtl_opt_pass pass_rtl_eh =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"eh", /* name */
|
||||
gate_handle_eh, /* gate */
|
||||
rest_of_handle_eh, /* execute */
|
||||
|
@ -4008,8 +4014,8 @@ struct tree_opt_pass pass_rtl_eh =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
'h' /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
#include "gt-except.h"
|
||||
|
|
32
gcc/final.c
32
gcc/final.c
|
@ -794,8 +794,10 @@ compute_alignments (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_compute_alignments =
|
||||
struct rtl_opt_pass pass_compute_alignments =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"alignments", /* name */
|
||||
NULL, /* gate */
|
||||
compute_alignments, /* execute */
|
||||
|
@ -808,8 +810,8 @@ struct tree_opt_pass pass_compute_alignments =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func | TODO_verify_rtl_sharing
|
||||
| TODO_ggc_collect, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
| TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -4169,8 +4171,10 @@ rest_of_handle_final (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_final =
|
||||
struct rtl_opt_pass pass_final =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
NULL, /* name */
|
||||
NULL, /* gate */
|
||||
rest_of_handle_final, /* execute */
|
||||
|
@ -4182,8 +4186,8 @@ struct tree_opt_pass pass_final =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -4195,8 +4199,10 @@ rest_of_handle_shorten_branches (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_shorten_branches =
|
||||
struct rtl_opt_pass pass_shorten_branches =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"shorten", /* name */
|
||||
NULL, /* gate */
|
||||
rest_of_handle_shorten_branches, /* execute */
|
||||
|
@ -4208,8 +4214,8 @@ struct tree_opt_pass pass_shorten_branches =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -4277,8 +4283,10 @@ rest_of_clean_state (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_clean_state =
|
||||
struct rtl_opt_pass pass_clean_state =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
NULL, /* name */
|
||||
NULL, /* gate */
|
||||
rest_of_clean_state, /* execute */
|
||||
|
@ -4290,7 +4298,7 @@ struct tree_opt_pass pass_clean_state =
|
|||
0, /* properties_provided */
|
||||
PROP_rtl, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
0, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
0 /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
16
gcc/fwprop.c
16
gcc/fwprop.c
|
@ -1021,8 +1021,10 @@ fwprop (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_rtl_fwprop =
|
||||
struct rtl_opt_pass pass_rtl_fwprop =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"fwprop1", /* name */
|
||||
gate_fwprop, /* gate */
|
||||
fwprop, /* execute */
|
||||
|
@ -1035,8 +1037,8 @@ struct tree_opt_pass pass_rtl_fwprop =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
static unsigned int
|
||||
|
@ -1063,8 +1065,10 @@ fwprop_addr (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_rtl_fwprop_addr =
|
||||
struct rtl_opt_pass pass_rtl_fwprop_addr =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"fwprop2", /* name */
|
||||
gate_fwprop, /* gate */
|
||||
fwprop_addr, /* execute */
|
||||
|
@ -1077,6 +1081,6 @@ struct tree_opt_pass pass_rtl_fwprop_addr =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
|
16
gcc/gcse.c
16
gcc/gcse.c
|
@ -6691,8 +6691,10 @@ rest_of_handle_jump_bypass (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_jump_bypass =
|
||||
struct rtl_opt_pass pass_jump_bypass =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"bypass", /* name */
|
||||
gate_handle_jump_bypass, /* gate */
|
||||
rest_of_handle_jump_bypass, /* execute */
|
||||
|
@ -6705,8 +6707,8 @@ struct tree_opt_pass pass_jump_bypass =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func |
|
||||
TODO_ggc_collect | TODO_verify_flow, /* todo_flags_finish */
|
||||
'G' /* letter */
|
||||
TODO_ggc_collect | TODO_verify_flow /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -6760,8 +6762,10 @@ rest_of_handle_gcse (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_gcse =
|
||||
struct rtl_opt_pass pass_gcse =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"gcse1", /* name */
|
||||
gate_handle_gcse, /* gate */
|
||||
rest_of_handle_gcse, /* execute */
|
||||
|
@ -6775,8 +6779,8 @@ struct tree_opt_pass pass_gcse =
|
|||
0, /* todo_flags_start */
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func |
|
||||
TODO_verify_flow | TODO_ggc_collect, /* todo_flags_finish */
|
||||
'G' /* letter */
|
||||
TODO_verify_flow | TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
10
gcc/global.c
10
gcc/global.c
|
@ -1783,7 +1783,7 @@ rest_of_handle_global_alloc (void)
|
|||
failure = reload (get_insns (), 0);
|
||||
}
|
||||
|
||||
if (dump_enabled_p (pass_global_alloc.static_pass_number))
|
||||
if (dump_enabled_p (pass_global_alloc.pass.static_pass_number))
|
||||
{
|
||||
timevar_push (TV_DUMP);
|
||||
dump_global_regs (dump_file);
|
||||
|
@ -1817,8 +1817,10 @@ rest_of_handle_global_alloc (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_global_alloc =
|
||||
struct rtl_opt_pass pass_global_alloc =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"greg", /* name */
|
||||
NULL, /* gate */
|
||||
rest_of_handle_global_alloc, /* execute */
|
||||
|
@ -1831,7 +1833,7 @@ struct tree_opt_pass pass_global_alloc =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func | TODO_verify_rtl_sharing
|
||||
| TODO_ggc_collect, /* todo_flags_finish */
|
||||
'g' /* letter */
|
||||
| TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
24
gcc/ifcvt.c
24
gcc/ifcvt.c
|
@ -4143,8 +4143,10 @@ rest_of_handle_if_conversion (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_rtl_ifcvt =
|
||||
struct rtl_opt_pass pass_rtl_ifcvt =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"ce1", /* name */
|
||||
gate_handle_if_conversion, /* gate */
|
||||
rest_of_handle_if_conversion, /* execute */
|
||||
|
@ -4157,8 +4159,8 @@ struct tree_opt_pass pass_rtl_ifcvt =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
'C' /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
static bool
|
||||
|
@ -4178,8 +4180,10 @@ rest_of_handle_if_after_combine (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_if_after_combine =
|
||||
struct rtl_opt_pass pass_if_after_combine =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"ce2", /* name */
|
||||
gate_handle_if_after_combine, /* gate */
|
||||
rest_of_handle_if_after_combine, /* execute */
|
||||
|
@ -4193,8 +4197,8 @@ struct tree_opt_pass pass_if_after_combine =
|
|||
0, /* todo_flags_start */
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'C' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
@ -4213,8 +4217,10 @@ rest_of_handle_if_after_reload (void)
|
|||
}
|
||||
|
||||
|
||||
struct tree_opt_pass pass_if_after_reload =
|
||||
struct rtl_opt_pass pass_if_after_reload =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"ce3", /* name */
|
||||
gate_handle_if_after_reload, /* gate */
|
||||
rest_of_handle_if_after_reload, /* execute */
|
||||
|
@ -4228,6 +4234,6 @@ struct tree_opt_pass pass_if_after_reload =
|
|||
0, /* todo_flags_start */
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'E' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -2196,8 +2196,10 @@ gate_type_escape_vars (void)
|
|||
&& !(errorcount || sorrycount));
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_ipa_type_escape =
|
||||
struct simple_ipa_opt_pass pass_ipa_type_escape =
|
||||
{
|
||||
{
|
||||
SIMPLE_IPA_PASS,
|
||||
"type-escape-var", /* name */
|
||||
gate_type_escape_vars, /* gate */
|
||||
type_escape_execute, /* execute */
|
||||
|
@ -2209,7 +2211,7 @@ struct tree_opt_pass pass_ipa_type_escape =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
0, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
0 /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -278,8 +278,10 @@ function_and_variable_visibility (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_ipa_function_and_variable_visibility =
|
||||
struct simple_ipa_opt_pass pass_ipa_function_and_variable_visibility =
|
||||
{
|
||||
{
|
||||
SIMPLE_IPA_PASS,
|
||||
"visibility", /* name */
|
||||
NULL, /* gate */
|
||||
function_and_variable_visibility, /* execute */
|
||||
|
@ -291,6 +293,6 @@ struct tree_opt_pass pass_ipa_function_and_variable_visibility =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_remove_functions | TODO_dump_cgraph,/* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_remove_functions | TODO_dump_cgraph/* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -122,8 +122,10 @@ cleanup_barriers (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_cleanup_barriers =
|
||||
struct rtl_opt_pass pass_cleanup_barriers =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"barriers", /* name */
|
||||
NULL, /* gate */
|
||||
cleanup_barriers, /* execute */
|
||||
|
@ -135,8 +137,8 @@ struct tree_opt_pass pass_cleanup_barriers =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
74
gcc/passes.c
74
gcc/passes.c
|
@ -104,7 +104,7 @@ along with GCC; see the file COPYING3. If not see
|
|||
|
||||
/* This is used for debugging. It allows the current pass to printed
|
||||
from anywhere in compilation. */
|
||||
struct tree_opt_pass *current_pass;
|
||||
struct opt_pass *current_pass;
|
||||
|
||||
/* Call from anywhere to find out what pass this is. Useful for
|
||||
printing out debugging information deep inside an service
|
||||
|
@ -246,19 +246,19 @@ finish_optimization_passes (void)
|
|||
timevar_push (TV_DUMP);
|
||||
if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities)
|
||||
{
|
||||
dump_file = dump_begin (pass_profile.static_pass_number, NULL);
|
||||
dump_file = dump_begin (pass_profile.pass.static_pass_number, NULL);
|
||||
end_branch_prob ();
|
||||
if (dump_file)
|
||||
dump_end (pass_profile.static_pass_number, dump_file);
|
||||
dump_end (pass_profile.pass.static_pass_number, dump_file);
|
||||
}
|
||||
|
||||
if (optimize > 0)
|
||||
{
|
||||
dump_file = dump_begin (pass_combine.static_pass_number, NULL);
|
||||
dump_file = dump_begin (pass_combine.pass.static_pass_number, NULL);
|
||||
if (dump_file)
|
||||
{
|
||||
dump_combine_total_stats (dump_file);
|
||||
dump_end (pass_combine.static_pass_number, dump_file);
|
||||
dump_end (pass_combine.pass.static_pass_number, dump_file);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -284,8 +284,10 @@ gate_rest_of_compilation (void)
|
|||
return !(rtl_dump_and_exit || flag_syntax_only || errorcount || sorrycount);
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_rest_of_compilation =
|
||||
struct gimple_opt_pass pass_rest_of_compilation =
|
||||
{
|
||||
{
|
||||
GIMPLE_PASS,
|
||||
NULL, /* name */
|
||||
gate_rest_of_compilation, /* gate */
|
||||
NULL, /* execute */
|
||||
|
@ -297,8 +299,8 @@ struct tree_opt_pass pass_rest_of_compilation =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
static bool
|
||||
|
@ -307,8 +309,10 @@ gate_postreload (void)
|
|||
return reload_completed;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_postreload =
|
||||
struct rtl_opt_pass pass_postreload =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
NULL, /* name */
|
||||
gate_postreload, /* gate */
|
||||
NULL, /* execute */
|
||||
|
@ -320,21 +324,21 @@ struct tree_opt_pass pass_postreload =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_ggc_collect | TODO_verify_rtl_sharing, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_ggc_collect | TODO_verify_rtl_sharing /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* The root of the compilation pass tree, once constructed. */
|
||||
struct tree_opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes;
|
||||
struct opt_pass *all_passes, *all_ipa_passes, *all_lowering_passes;
|
||||
|
||||
/* Iterate over the pass tree allocating dump file numbers. We want
|
||||
to do this depth first, and independent of whether the pass is
|
||||
enabled or not. */
|
||||
|
||||
static void
|
||||
register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties)
|
||||
register_one_dump_file (struct opt_pass *pass, bool ipa, int properties)
|
||||
{
|
||||
char *dot_name, *flag_name, *glob_name;
|
||||
const char *prefix;
|
||||
|
@ -358,13 +362,13 @@ register_one_dump_file (struct tree_opt_pass *pass, bool ipa, int properties)
|
|||
flag_name = concat (prefix, pass->name, num, NULL);
|
||||
glob_name = concat (prefix, pass->name, NULL);
|
||||
pass->static_pass_number = dump_register (dot_name, flag_name, glob_name,
|
||||
flags, pass->letter);
|
||||
flags);
|
||||
}
|
||||
|
||||
/* Recursive worker function for register_dump_files. */
|
||||
|
||||
static int
|
||||
register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties)
|
||||
register_dump_files_1 (struct opt_pass *pass, bool ipa, int properties)
|
||||
{
|
||||
do
|
||||
{
|
||||
|
@ -398,7 +402,7 @@ register_dump_files_1 (struct tree_opt_pass *pass, bool ipa, int properties)
|
|||
the pipeline. */
|
||||
|
||||
static void
|
||||
register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties)
|
||||
register_dump_files (struct opt_pass *pass, bool ipa, int properties)
|
||||
{
|
||||
pass->properties_required |= properties;
|
||||
register_dump_files_1 (pass, ipa, properties);
|
||||
|
@ -407,14 +411,14 @@ register_dump_files (struct tree_opt_pass *pass, bool ipa, int properties)
|
|||
/* Add a pass to the pass list. Duplicate the pass if it's already
|
||||
in the list. */
|
||||
|
||||
static struct tree_opt_pass **
|
||||
next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
|
||||
static struct opt_pass **
|
||||
next_pass_1 (struct opt_pass **list, struct opt_pass *pass)
|
||||
{
|
||||
/* A nonzero static_pass_number indicates that the
|
||||
pass is already in the list. */
|
||||
if (pass->static_pass_number)
|
||||
{
|
||||
struct tree_opt_pass *new;
|
||||
struct opt_pass *new;
|
||||
|
||||
new = xmalloc (sizeof (*new));
|
||||
memcpy (new, pass, sizeof (*new));
|
||||
|
@ -467,9 +471,9 @@ next_pass_1 (struct tree_opt_pass **list, struct tree_opt_pass *pass)
|
|||
void
|
||||
init_optimization_passes (void)
|
||||
{
|
||||
struct tree_opt_pass **p;
|
||||
struct opt_pass **p;
|
||||
|
||||
#define NEXT_PASS(PASS) (p = next_pass_1 (p, &PASS))
|
||||
#define NEXT_PASS(PASS) (p = next_pass_1 (p, &((PASS).pass)))
|
||||
|
||||
/* All passes needed to lower the function into shape optimizers can
|
||||
operate on. These passes are always run first on the function, but
|
||||
|
@ -497,21 +501,21 @@ init_optimization_passes (void)
|
|||
NEXT_PASS (pass_ipa_function_and_variable_visibility);
|
||||
NEXT_PASS (pass_ipa_early_inline);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_ipa_early_inline.sub;
|
||||
struct opt_pass **p = &pass_ipa_early_inline.pass.sub;
|
||||
NEXT_PASS (pass_early_inline);
|
||||
NEXT_PASS (pass_inline_parameters);
|
||||
NEXT_PASS (pass_rebuild_cgraph_edges);
|
||||
}
|
||||
NEXT_PASS (pass_early_local_passes);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_early_local_passes.sub;
|
||||
struct opt_pass **p = &pass_early_local_passes.pass.sub;
|
||||
NEXT_PASS (pass_tree_profile);
|
||||
NEXT_PASS (pass_cleanup_cfg);
|
||||
NEXT_PASS (pass_init_datastructures);
|
||||
NEXT_PASS (pass_expand_omp);
|
||||
NEXT_PASS (pass_all_early_optimizations);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_all_early_optimizations.sub;
|
||||
struct opt_pass **p = &pass_all_early_optimizations.pass.sub;
|
||||
NEXT_PASS (pass_referenced_vars);
|
||||
NEXT_PASS (pass_reset_cc_flags);
|
||||
NEXT_PASS (pass_build_ssa);
|
||||
|
@ -555,7 +559,7 @@ init_optimization_passes (void)
|
|||
NEXT_PASS (pass_apply_inline);
|
||||
NEXT_PASS (pass_all_optimizations);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_all_optimizations.sub;
|
||||
struct opt_pass **p = &pass_all_optimizations.pass.sub;
|
||||
NEXT_PASS (pass_create_structure_vars);
|
||||
/* ??? pass_build_alias is a dummy pass that ensures that we
|
||||
execute TODO_rebuild_alias at this point even if
|
||||
|
@ -614,7 +618,7 @@ init_optimization_passes (void)
|
|||
NEXT_PASS (pass_sink_code);
|
||||
NEXT_PASS (pass_tree_loop);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_tree_loop.sub;
|
||||
struct opt_pass **p = &pass_tree_loop.pass.sub;
|
||||
NEXT_PASS (pass_tree_loop_init);
|
||||
NEXT_PASS (pass_copy_prop);
|
||||
NEXT_PASS (pass_dce_loop);
|
||||
|
@ -631,7 +635,7 @@ init_optimization_passes (void)
|
|||
NEXT_PASS (pass_if_conversion);
|
||||
NEXT_PASS (pass_vectorize);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_vectorize.sub;
|
||||
struct opt_pass **p = &pass_vectorize.pass.sub;
|
||||
NEXT_PASS (pass_lower_vector_ssa);
|
||||
NEXT_PASS (pass_dce_loop);
|
||||
}
|
||||
|
@ -685,7 +689,7 @@ init_optimization_passes (void)
|
|||
NEXT_PASS (pass_expand);
|
||||
NEXT_PASS (pass_rest_of_compilation);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_rest_of_compilation.sub;
|
||||
struct opt_pass **p = &pass_rest_of_compilation.pass.sub;
|
||||
NEXT_PASS (pass_init_function);
|
||||
NEXT_PASS (pass_jump);
|
||||
NEXT_PASS (pass_rtl_eh);
|
||||
|
@ -705,7 +709,7 @@ init_optimization_passes (void)
|
|||
efficiently. */
|
||||
NEXT_PASS (pass_loop2);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_loop2.sub;
|
||||
struct opt_pass **p = &pass_loop2.pass.sub;
|
||||
NEXT_PASS (pass_rtl_loop_init);
|
||||
NEXT_PASS (pass_rtl_move_loop_invariants);
|
||||
NEXT_PASS (pass_rtl_unswitch);
|
||||
|
@ -743,7 +747,7 @@ init_optimization_passes (void)
|
|||
NEXT_PASS (pass_subregs_of_mode_finish);
|
||||
NEXT_PASS (pass_postreload);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_postreload.sub;
|
||||
struct opt_pass **p = &pass_postreload.pass.sub;
|
||||
NEXT_PASS (pass_postreload_cse);
|
||||
NEXT_PASS (pass_gcse2);
|
||||
NEXT_PASS (pass_split_after_reload);
|
||||
|
@ -764,7 +768,7 @@ init_optimization_passes (void)
|
|||
NEXT_PASS (pass_sched2);
|
||||
NEXT_PASS (pass_stack_regs);
|
||||
{
|
||||
struct tree_opt_pass **p = &pass_stack_regs.sub;
|
||||
struct opt_pass **p = &pass_stack_regs.pass.sub;
|
||||
NEXT_PASS (pass_split_before_regstack);
|
||||
NEXT_PASS (pass_stack_regs_run);
|
||||
}
|
||||
|
@ -1056,13 +1060,13 @@ verify_curr_properties (void *data)
|
|||
static void
|
||||
update_properties_after_pass (void *data)
|
||||
{
|
||||
struct tree_opt_pass *pass = data;
|
||||
struct opt_pass *pass = data;
|
||||
cfun->curr_properties = (cfun->curr_properties | pass->properties_provided)
|
||||
& ~pass->properties_destroyed;
|
||||
}
|
||||
|
||||
static bool
|
||||
execute_one_pass (struct tree_opt_pass *pass)
|
||||
execute_one_pass (struct opt_pass *pass)
|
||||
{
|
||||
bool initializing_dump;
|
||||
unsigned int todo_after = 0;
|
||||
|
@ -1169,7 +1173,7 @@ execute_one_pass (struct tree_opt_pass *pass)
|
|||
}
|
||||
|
||||
void
|
||||
execute_pass_list (struct tree_opt_pass *pass)
|
||||
execute_pass_list (struct opt_pass *pass)
|
||||
{
|
||||
do
|
||||
{
|
||||
|
@ -1183,7 +1187,7 @@ execute_pass_list (struct tree_opt_pass *pass)
|
|||
/* Same as execute_pass_list but assume that subpasses of IPA passes
|
||||
are local passes. */
|
||||
void
|
||||
execute_ipa_pass_list (struct tree_opt_pass *pass)
|
||||
execute_ipa_pass_list (struct opt_pass *pass)
|
||||
{
|
||||
do
|
||||
{
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
48
gcc/recog.c
48
gcc/recog.c
|
@ -3312,8 +3312,10 @@ rest_of_handle_peephole2 (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_peephole2 =
|
||||
struct rtl_opt_pass pass_peephole2 =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"peephole2", /* name */
|
||||
gate_handle_peephole2, /* gate */
|
||||
rest_of_handle_peephole2, /* execute */
|
||||
|
@ -3326,8 +3328,8 @@ struct tree_opt_pass pass_peephole2 =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
'z' /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
static unsigned int
|
||||
|
@ -3337,8 +3339,10 @@ rest_of_handle_split_all_insns (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_split_all_insns =
|
||||
struct rtl_opt_pass pass_split_all_insns =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"split1", /* name */
|
||||
NULL, /* gate */
|
||||
rest_of_handle_split_all_insns, /* execute */
|
||||
|
@ -3350,8 +3354,8 @@ struct tree_opt_pass pass_split_all_insns =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
static unsigned int
|
||||
|
@ -3365,8 +3369,10 @@ rest_of_handle_split_after_reload (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_split_after_reload =
|
||||
struct rtl_opt_pass pass_split_after_reload =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"split2", /* name */
|
||||
NULL, /* gate */
|
||||
rest_of_handle_split_after_reload, /* execute */
|
||||
|
@ -3378,8 +3384,8 @@ struct tree_opt_pass pass_split_after_reload =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
static bool
|
||||
|
@ -3407,8 +3413,10 @@ rest_of_handle_split_before_regstack (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_split_before_regstack =
|
||||
struct rtl_opt_pass pass_split_before_regstack =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"split3", /* name */
|
||||
gate_handle_split_before_regstack, /* gate */
|
||||
rest_of_handle_split_before_regstack, /* execute */
|
||||
|
@ -3420,8 +3428,8 @@ struct tree_opt_pass pass_split_before_regstack =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
static bool
|
||||
|
@ -3443,8 +3451,10 @@ rest_of_handle_split_before_sched2 (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_split_before_sched2 =
|
||||
struct rtl_opt_pass pass_split_before_sched2 =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"split4", /* name */
|
||||
gate_handle_split_before_sched2, /* gate */
|
||||
rest_of_handle_split_before_sched2, /* execute */
|
||||
|
@ -3457,8 +3467,8 @@ struct tree_opt_pass pass_split_before_sched2 =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_verify_flow |
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
/* The placement of the splitting that we do for shorten_branches
|
||||
|
@ -3473,8 +3483,10 @@ gate_do_final_split (void)
|
|||
#endif
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_split_for_shorten_branches =
|
||||
struct rtl_opt_pass pass_split_for_shorten_branches =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"split5", /* name */
|
||||
gate_do_final_split, /* gate */
|
||||
split_all_insns_noflow, /* execute */
|
||||
|
@ -3486,8 +3498,8 @@ struct tree_opt_pass pass_split_for_shorten_branches =
|
|||
0, /* properties_provided */
|
||||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func | TODO_verify_rtl_sharing, /* todo_flags_finish */
|
||||
0 /* letter */
|
||||
TODO_dump_func | TODO_verify_rtl_sharing /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
16
gcc/reorg.c
16
gcc/reorg.c
|
@ -4066,8 +4066,10 @@ rest_of_handle_delay_slots (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_delay_slots =
|
||||
struct rtl_opt_pass pass_delay_slots =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"dbr", /* name */
|
||||
gate_handle_delay_slots, /* gate */
|
||||
rest_of_handle_delay_slots, /* execute */
|
||||
|
@ -4080,8 +4082,8 @@ struct tree_opt_pass pass_delay_slots =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'd' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
/* Machine dependent reorg pass. */
|
||||
|
@ -4099,8 +4101,10 @@ rest_of_handle_machine_reorg (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_machine_reorg =
|
||||
struct rtl_opt_pass pass_machine_reorg =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"mach", /* name */
|
||||
gate_handle_machine_reorg, /* gate */
|
||||
rest_of_handle_machine_reorg, /* execute */
|
||||
|
@ -4113,6 +4117,6 @@ struct tree_opt_pass pass_machine_reorg =
|
|||
0, /* properties_destroyed */
|
||||
0, /* todo_flags_start */
|
||||
TODO_dump_func |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'M' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -3192,8 +3192,10 @@ rest_of_handle_sched2 (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_sched =
|
||||
struct rtl_opt_pass pass_sched =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"sched1", /* name */
|
||||
gate_handle_sched, /* gate */
|
||||
rest_of_handle_sched, /* execute */
|
||||
|
@ -3208,12 +3210,14 @@ struct tree_opt_pass pass_sched =
|
|||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func |
|
||||
TODO_verify_flow |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'S' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
struct tree_opt_pass pass_sched2 =
|
||||
struct rtl_opt_pass pass_sched2 =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"sched2", /* name */
|
||||
gate_handle_sched2, /* gate */
|
||||
rest_of_handle_sched2, /* execute */
|
||||
|
@ -3228,7 +3232,7 @@ struct tree_opt_pass pass_sched2 =
|
|||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func |
|
||||
TODO_verify_flow |
|
||||
TODO_ggc_collect, /* todo_flags_finish */
|
||||
'R' /* letter */
|
||||
TODO_ggc_collect /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -3859,8 +3859,10 @@ rest_of_handle_see (void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct tree_opt_pass pass_see =
|
||||
struct rtl_opt_pass pass_see =
|
||||
{
|
||||
{
|
||||
RTL_PASS,
|
||||
"see", /* name */
|
||||
gate_handle_see, /* gate */
|
||||
rest_of_handle_see, /* execute */
|
||||
|
@ -3874,7 +3876,7 @@ struct tree_opt_pass pass_see =
|
|||
0, /* todo_flags_start */
|
||||
TODO_df_verify |
|
||||
TODO_df_finish | TODO_verify_rtl_sharing |
|
||||
TODO_dump_func, /* todo_flags_finish */
|
||||
'u' /* letter */
|
||||
TODO_dump_func /* todo_flags_finish */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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" } } */
|
||||
|
|
|
@ -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"} } */
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 ();
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
447
gcc/tree-pass.h
447
gcc/tree-pass.h
|
@ -88,9 +88,16 @@ extern const char *dump_file_name;
|
|||
/* Return the dump_file_info for the given phase. */
|
||||
extern struct dump_file_info *get_dump_file_info (enum tree_dump_index);
|
||||
|
||||
/* Describe one pass. */
|
||||
struct tree_opt_pass
|
||||
/* Describe one pass; this is the common part shared across different pass
|
||||
types. */
|
||||
struct opt_pass
|
||||
{
|
||||
/* Optimization pass type. */
|
||||
enum opt_pass_type {
|
||||
GIMPLE_PASS,
|
||||
RTL_PASS,
|
||||
SIMPLE_IPA_PASS
|
||||
} type;
|
||||
/* Terse name of the pass used as a fragment of the dump file name. */
|
||||
const char *name;
|
||||
|
||||
|
@ -104,10 +111,10 @@ struct tree_opt_pass
|
|||
unsigned int (*execute) (void);
|
||||
|
||||
/* A list of sub-passes to run, dependent on gate predicate. */
|
||||
struct tree_opt_pass *sub;
|
||||
struct opt_pass *sub;
|
||||
|
||||
/* Next in the list of passes to run, independent of gate predicate. */
|
||||
struct tree_opt_pass *next;
|
||||
struct opt_pass *next;
|
||||
|
||||
/* Static pass number, used as a fragment of the dump file name. */
|
||||
int static_pass_number;
|
||||
|
@ -124,9 +131,25 @@ struct tree_opt_pass
|
|||
/* Flags indicating common sets things to do before and after. */
|
||||
unsigned int todo_flags_start;
|
||||
unsigned int todo_flags_finish;
|
||||
};
|
||||
|
||||
/* 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);
|
||||
|
||||
|
|
|
@ -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 =
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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 */
|
||||
}
|
||||
};
|
||||
|
|
|
@ -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
Loading…
Add table
Reference in a new issue