aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2006-03-02 19:00:11 +0000
committerDaniel Berlin <dberlin@gcc.gnu.org>2006-03-02 19:00:11 +0000
commitc2924966db687eb67be927c2db657dc92ff25f25 (patch)
treebe719a0fce98aa79e9d0bba9d312f8c1fc708aec /gcc
parentd349339d334659de743cd6435b068237369226e4 (diff)
downloadgcc-c2924966db687eb67be927c2db657dc92ff25f25.zip
gcc-c2924966db687eb67be927c2db657dc92ff25f25.tar.gz
gcc-c2924966db687eb67be927c2db657dc92ff25f25.tar.bz2
tree-vrp.c (execute_vrp): Return value.
2006-03-02 Daniel Berlin <dberlin@dberlin.org> * gcc/tree-vrp.c (execute_vrp): Return value. * gcc/regrename.c (rest_of_handle_regrename): Ditto. * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto. * gcc/tree-complex.c (tree_lower_complex): Ditto. (tree_lower_complex_O0): Ditto. * gcc/tracer.c (rest_of_handle_tracer): Ditto. * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto. * gcc/postreload.c (rest_of_handle_postreload): Ditto. * gcc/tree-tailcall.c (execute_tail_recursion): Ditto. (execute_tail_calls): Ditto. * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto. * gcc/tree.h (init_function_for_compilation): Ditto. * gcc/ipa-cp.c (ipcp_driver): Ditto. * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto. * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto. * gcc/final.c (compute_alignments): Ditto. (rest_of_handle_final): Ditto. (rest_of_handle_shorten_branches): Ditto. (rest_of_clean_state): Ditto. * gcc/omp-low.c (execute_expand_omp): Ditto. (execute_lower_omp): Ditto. * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto. * gcc/ipa-reference.c (static_execute): Ditto. * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto. * gcc/reorg.c (rest_of_handle_delay_slots): Ditto. (rest_of_handle_machine_reorg): Ditto. * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto. * gcc/flow.c (recompute_reg_usage): Ditto. (rest_of_handle_remove_death_notes): Ditto. (rest_of_handle_life): Ditto. (rest_of_handle_flow2): Ditto. * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto. * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto. (do_ssa_store_ccp): Ditto. (execute_fold_all_builtins): Ditto. * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto. * gcc/modulo-sched.c (rest_of_handle_sms): Ditto. * gcc/ipa-pure-const.c (static_execute): Ditto. * gcc/cse.c (rest_of_handle_cse): Ditto. (rest_of_handle_cse2): Ditto. * gcc/web.c (rest_of_handle_web): Ditto. * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto. * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto. * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto. * gcc/tree-nrv.c (tree_nrv): Ditto. (execute_return_slot_opt): Ditto. * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto. (create_structure_vars): Ditto. * gcc/loop-init.c (rtl_loop_init): Ditto. (rtl_loop_done): Ditto. (rtl_move_loop_invariants): Ditto. (rtl_unswitch): Ditto. (rtl_unroll_and_peel_loops): Ditto. (rtl_doloop): Ditto. * gcc/gimple-low.c (lower_function_body): Ditto. (mark_used_blocks): Ditto. * gcc/tree-ssa-sink.c (execute_sink_code): Ditto. * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto. (cgraph_early_inlining): Ditto. * gcc/global.c (rest_of_handle_global_alloc): Ditto. * gcc/jump.c (cleanup_barriers): Ditto. (purge_line_number_notes): Ditto. * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto. (rest_of_handle_if_after_reload): Ditto. * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto. (tree_ssa_loop_im): Ditto. (tree_ssa_loop_unswitch): Ditto. (tree_vectorize): Ditto. (tree_linear_transform): Ditto. (tree_ssa_loop_ivcanon): Ditto. (tree_ssa_empty_loop): Ditto. (tree_ssa_loop_bounds): Ditto. (tree_complete_unroll): Ditto. (tree_ssa_loop_prefetch): Ditto. (tree_ssa_loop_ivopts): Ditto. (tree_ssa_loop_done): Ditto. * gcc/predict.c (tree_estimate_probability): Ditto. * gcc/recog.c (split_all_insns_noflow): Ditto. (rest_of_handle_peephole2): Ditto. (rest_of_handle_split_all_insns): Ditto. * gcc/tree-eh.c (lower_eh_constructs): Ditto. * gcc/regmove.c (rest_of_handle_regmove): Ditto. (rest_of_handle_stack_adjustments): Ditto. * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto. * gcc/function.c (instantiate_virtual_regs): Ditto. (init_function_for_compilation): Ditto. (rest_of_handle_check_leaf_regs): Ditto. * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto. (rest_of_handle_gcse): Ditto. * gcc/ipa-type-escape.c (type_escape_execute): Ditto. * gcc/alias.c (rest_of_handle_cfg): Ditto. * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto. * gcc/profile.c (rest_of_handle_branch_prob): Ditto. * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto. * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto. * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto * gcc/tree-dfa.c (find_referenced_vars): Ditto. * gcc/except.c (set_nothrow_function_flags): Ditto. (convert_to_eh_region_ranges): Ditto. (rest_of_handle_eh): Ditto. * gcc/emit-rtl.c (unshare_all_rtl): Ditto. (remove_unnecessary_notes): Ditto. * gcc/except.h (set_nothrow_function_flags): Ditto. (convert_to_eh_region_ranges): Ditto. * gcc/cfgexpand.c (tree_expand_cfg): Ditto. * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto. * gcc/tree-ssa-pre.c (do_pre): Ditto. (execute_fre): Ditto. * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto. (rest_of_handle_jump2): Ditto. * gcc/tree-sra.c (tree_sra): Ditto. * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto. (execute_mudflap_function_decls): Ditto. * gcc/tree-ssa-copy.c (do_copy_prop): Ditto. (do_store_copy_prop): Ditto. * gcc/ipa-prop.h (ipcp_driver): Ditto. * gcc/cfglayout.c (insn_locators_initialize): Ditto. * gcc/tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): Ditto. * gcc/cfglayout.h (insn_locators_initialize): Ditto. * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto. * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto. (execute_late_warn_uninitialized): Ditto. * gcc/rtl.h (cleanup_barriers): Ditto. (split_all_insns_noflow): Ditto. (purge_line_number_notes): Ditto. (unshare_all_rtl): Ditto. (remove_unnecessary_notes): Ditto. (recompute_reg_usage): Ditto. (variable_tracking_main): Ditto. * gcc/integrate.c (emit_initial_value_sets): Ditto. * gcc/integrate.h (emit_initial_value_sets): Ditto. * gcc/tree-optimize.c (execute_free_datastructures): Ditto (execute_free_cfg_annotations): Ditto. (execute_fixup_cfg): Ditto. (execute_cleanup_cfg_pre_ipa): Ditto. (execute_cleanup_cfg_post_optimizing): Ditto. (execute_init_datastructures): Ditto. * gcc/tree-object-size.c (compute_object_sizes): Ditto. * gcc/combine.c (rest_of_handle_combine): Ditto. * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto. * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto. (rest_of_handle_reorder_blocks): Ditto. (rest_of_handle_partition_blocks): Ditto. * gcc/var-tracking.c (variable_tracking_main): Ditto. * gcc/tree-profile.c (tree_profiling): Ditto. * gcc/tree-vect-generic.c (expand_vector_operations): Ditto. * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto. * gcc/sched-rgn.c (rest_of_handle_sched): Ditto. (rest_of_handle_sched2): Ditto. * gcc/basic-block.h (free_bb_insn): Ditto. * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto. * gcc/tree-cfg.c (execute_build_cfg): Ditto. (remove_useless_stmts): Ditto. (split_critical_edges): Ditto. (execute_warn_function_return): Ditto. (execute_warn_function_noreturn): Ditto. * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto. * gcc/cfgrtl.c (free_bb_for_insn): Ditto. * gcc/passes.c (execute_one_pass): Run additional todos returned by execute function. * gcc/tree-pass.h (struct tree_opt_pass): Make execute return a value. From-SVN: r111643
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog166
-rw-r--r--gcc/alias.c3
-rw-r--r--gcc/basic-block.h2
-rw-r--r--gcc/bb-reorder.c13
-rw-r--r--gcc/bt-load.c3
-rw-r--r--gcc/cfgcleanup.c6
-rw-r--r--gcc/cfgexpand.c3
-rw-r--r--gcc/cfglayout.c3
-rw-r--r--gcc/cfglayout.h2
-rw-r--r--gcc/cfgrtl.c3
-rw-r--r--gcc/cgraphunit.c3
-rw-r--r--gcc/combine.c3
-rw-r--r--gcc/cse.c6
-rw-r--r--gcc/emit-rtl.c6
-rw-r--r--gcc/except.c17
-rw-r--r--gcc/except.h4
-rw-r--r--gcc/final.c14
-rw-r--r--gcc/flow.c12
-rw-r--r--gcc/function.c9
-rw-r--r--gcc/gcse.c6
-rw-r--r--gcc/gimple-low.c6
-rw-r--r--gcc/global.c3
-rw-r--r--gcc/ifcvt.c9
-rw-r--r--gcc/integrate.c5
-rw-r--r--gcc/integrate.h2
-rw-r--r--gcc/ipa-cp.c3
-rw-r--r--gcc/ipa-inline.c8
-rw-r--r--gcc/ipa-prop.h2
-rw-r--r--gcc/ipa-pure-const.c3
-rw-r--r--gcc/ipa-reference.c3
-rw-r--r--gcc/ipa-type-escape.c3
-rw-r--r--gcc/jump.c6
-rw-r--r--gcc/local-alloc.c3
-rw-r--r--gcc/loop-init.c18
-rw-r--r--gcc/mode-switching.c3
-rw-r--r--gcc/modulo-sched.c3
-rw-r--r--gcc/omp-low.c6
-rw-r--r--gcc/passes.c5
-rw-r--r--gcc/postreload-gcse.c3
-rw-r--r--gcc/postreload.c3
-rw-r--r--gcc/predict.c3
-rw-r--r--gcc/profile.c3
-rw-r--r--gcc/recog.c9
-rw-r--r--gcc/reg-stack.c3
-rw-r--r--gcc/regmove.c6
-rw-r--r--gcc/regrename.c3
-rw-r--r--gcc/reorg.c6
-rw-r--r--gcc/rtl-factoring.c3
-rw-r--r--gcc/rtl.h14
-rw-r--r--gcc/sched-rgn.c6
-rw-r--r--gcc/tracer.c3
-rw-r--r--gcc/tree-cfg.c17
-rw-r--r--gcc/tree-cfgcleanup.c3
-rw-r--r--gcc/tree-complex.c8
-rw-r--r--gcc/tree-dfa.c3
-rw-r--r--gcc/tree-eh.c3
-rw-r--r--gcc/tree-if-conv.c8
-rw-r--r--gcc/tree-into-ssa.c3
-rw-r--r--gcc/tree-mudflap.c14
-rw-r--r--gcc/tree-nrv.c14
-rw-r--r--gcc/tree-object-size.c5
-rw-r--r--gcc/tree-optimize.c18
-rw-r--r--gcc/tree-outof-ssa.c3
-rw-r--r--gcc/tree-pass.h5
-rw-r--r--gcc/tree-profile.c3
-rw-r--r--gcc/tree-scalar-evolution.c5
-rw-r--r--gcc/tree-scalar-evolution.h2
-rw-r--r--gcc/tree-sra.c3
-rw-r--r--gcc/tree-ssa-alias.c7
-rw-r--r--gcc/tree-ssa-ccp.c9
-rw-r--r--gcc/tree-ssa-copy.c9
-rw-r--r--gcc/tree-ssa-copyrename.c3
-rw-r--r--gcc/tree-ssa-dce.c9
-rw-r--r--gcc/tree-ssa-dom.c3
-rw-r--r--gcc/tree-ssa-dse.c5
-rw-r--r--gcc/tree-ssa-forwprop.c3
-rw-r--r--gcc/tree-ssa-loop-ch.c5
-rw-r--r--gcc/tree-ssa-loop.c58
-rw-r--r--gcc/tree-ssa-math-opts.c3
-rw-r--r--gcc/tree-ssa-phiopt.c5
-rw-r--r--gcc/tree-ssa-pre.c6
-rw-r--r--gcc/tree-ssa-reassoc.c3
-rw-r--r--gcc/tree-ssa-sink.c3
-rw-r--r--gcc/tree-ssa-structalias.c3
-rw-r--r--gcc/tree-ssa-uncprop.c4
-rw-r--r--gcc/tree-ssa.c6
-rw-r--r--gcc/tree-stdarg.c3
-rw-r--r--gcc/tree-tailcall.c6
-rw-r--r--gcc/tree-vect-generic.c3
-rw-r--r--gcc/tree-vrp.c4
-rw-r--r--gcc/tree.h2
-rw-r--r--gcc/var-tracking.c7
-rw-r--r--gcc/web.c3
93 files changed, 520 insertions, 209 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 066b933..7967d68 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,169 @@
+2006-03-02 Daniel Berlin <dberlin@dberlin.org>
+
+ * gcc/tree-vrp.c (execute_vrp): Return value.
+ * gcc/regrename.c (rest_of_handle_regrename): Ditto.
+ * gcc/tree-into-ssa.c (rewrite_into_ssa): Ditto.
+ * gcc/tree-complex.c (tree_lower_complex): Ditto.
+ (tree_lower_complex_O0): Ditto.
+ * gcc/tracer.c (rest_of_handle_tracer): Ditto.
+ * gcc/postreload-gcse.c (rest_of_handle_gcse2): Ditto.
+ * gcc/postreload.c (rest_of_handle_postreload): Ditto.
+ * gcc/tree-tailcall.c (execute_tail_recursion): Ditto.
+ (execute_tail_calls): Ditto.
+ * gcc/tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
+ * gcc/tree.h (init_function_for_compilation): Ditto.
+ * gcc/ipa-cp.c (ipcp_driver): Ditto.
+ * gcc/tree-scalar-evolution.c (scev_const_prop): Ditto.
+ * gcc/tree-scalar-evolution.h (scev_const_prop): Ditto.
+ * gcc/final.c (compute_alignments): Ditto.
+ (rest_of_handle_final): Ditto.
+ (rest_of_handle_shorten_branches): Ditto.
+ (rest_of_clean_state): Ditto.
+ * gcc/omp-low.c (execute_expand_omp): Ditto.
+ (execute_lower_omp): Ditto.
+ * gcc/tree-ssa-dse.c (tree_ssa_dse): Ditto.
+ * gcc/ipa-reference.c (static_execute): Ditto.
+ * gcc/tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
+ * gcc/reorg.c (rest_of_handle_delay_slots): Ditto.
+ (rest_of_handle_machine_reorg): Ditto.
+ * gcc/cgraphunit.c (rebuild_cgraph_edges): Ditto.
+ * gcc/flow.c (recompute_reg_usage): Ditto.
+ (rest_of_handle_remove_death_notes): Ditto.
+ (rest_of_handle_life): Ditto.
+ (rest_of_handle_flow2): Ditto.
+ * gcc/tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
+ * gcc/tree-ssa-ccp.c (do_ssa_ccp): Ditto.
+ (do_ssa_store_ccp): Ditto.
+ (execute_fold_all_builtins): Ditto.
+ * gcc/mode-switching.c (rest_of_handle_mode_switching): Ditto.
+ * gcc/modulo-sched.c (rest_of_handle_sms): Ditto.
+ * gcc/ipa-pure-const.c (static_execute): Ditto.
+ * gcc/cse.c (rest_of_handle_cse): Ditto.
+ (rest_of_handle_cse2): Ditto.
+ * gcc/web.c (rest_of_handle_web): Ditto.
+ * gcc/tree-stdarg.c (execute_optimize_stdarg): Ditto.
+ * gcc/tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
+ * gcc/tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
+ * gcc/tree-nrv.c (tree_nrv): Ditto.
+ (execute_return_slot_opt): Ditto.
+ * gcc/tree-ssa-alias.c (compute_may_aliases): Ditto.
+ (create_structure_vars): Ditto.
+ * gcc/loop-init.c (rtl_loop_init): Ditto.
+ (rtl_loop_done): Ditto.
+ (rtl_move_loop_invariants): Ditto.
+ (rtl_unswitch): Ditto.
+ (rtl_unroll_and_peel_loops): Ditto.
+ (rtl_doloop): Ditto.
+ * gcc/gimple-low.c (lower_function_body): Ditto.
+ (mark_used_blocks): Ditto.
+ * gcc/tree-ssa-sink.c (execute_sink_code): Ditto.
+ * gcc/ipa-inline.c (cgraph_decide_inlining): Ditto.
+ (cgraph_early_inlining): Ditto.
+ * gcc/global.c (rest_of_handle_global_alloc): Ditto.
+ * gcc/jump.c (cleanup_barriers): Ditto.
+ (purge_line_number_notes): Ditto.
+ * gcc/ifcvt.c (rest_of_handle_if_conversion): Ditto.
+ (rest_of_handle_if_after_reload): Ditto.
+ * gcc/tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
+ (tree_ssa_loop_im): Ditto.
+ (tree_ssa_loop_unswitch): Ditto.
+ (tree_vectorize): Ditto.
+ (tree_linear_transform): Ditto.
+ (tree_ssa_loop_ivcanon): Ditto.
+ (tree_ssa_empty_loop): Ditto.
+ (tree_ssa_loop_bounds): Ditto.
+ (tree_complete_unroll): Ditto.
+ (tree_ssa_loop_prefetch): Ditto.
+ (tree_ssa_loop_ivopts): Ditto.
+ (tree_ssa_loop_done): Ditto.
+ * gcc/predict.c (tree_estimate_probability): Ditto.
+ * gcc/recog.c (split_all_insns_noflow): Ditto.
+ (rest_of_handle_peephole2): Ditto.
+ (rest_of_handle_split_all_insns): Ditto.
+ * gcc/tree-eh.c (lower_eh_constructs): Ditto.
+ * gcc/regmove.c (rest_of_handle_regmove): Ditto.
+ (rest_of_handle_stack_adjustments): Ditto.
+ * gcc/local-alloc.c (rest_of_handle_local_alloc): Ditto.
+ * gcc/function.c (instantiate_virtual_regs): Ditto.
+ (init_function_for_compilation): Ditto.
+ (rest_of_handle_check_leaf_regs): Ditto.
+ * gcc/gcse.c (rest_of_handle_jump_bypass): Ditto.
+ (rest_of_handle_gcse): Ditto.
+ * gcc/ipa-type-escape.c (type_escape_execute): Ditto.
+ * gcc/alias.c (rest_of_handle_cfg): Ditto.
+ * gcc/tree-if-conv.c (main_tree_if_conversion): Ditto.
+ * gcc/profile.c (rest_of_handle_branch_prob): Ditto.
+ * gcc/tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
+ * gcc/rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
+ * gcc/bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
+ * gcc/tree-dfa.c (find_referenced_vars): Ditto.
+ * gcc/except.c (set_nothrow_function_flags): Ditto.
+ (convert_to_eh_region_ranges): Ditto.
+ (rest_of_handle_eh): Ditto.
+ * gcc/emit-rtl.c (unshare_all_rtl): Ditto.
+ (remove_unnecessary_notes): Ditto.
+ * gcc/except.h (set_nothrow_function_flags): Ditto.
+ (convert_to_eh_region_ranges): Ditto.
+ * gcc/cfgexpand.c (tree_expand_cfg): Ditto.
+ * gcc/tree-cfgcleanup.c (merge_phi_nodes): Ditto.
+ * gcc/tree-ssa-pre.c (do_pre): Ditto.
+ (execute_fre): Ditto.
+ * gcc/cfgcleanup.c (rest_of_handle_jump): Ditto.
+ (rest_of_handle_jump2): Ditto.
+ * gcc/tree-sra.c (tree_sra): Ditto.
+ * gcc/tree-mudflap.c (execute_mudflap_function_ops): Ditto.
+ (execute_mudflap_function_decls): Ditto.
+ * gcc/tree-ssa-copy.c (do_copy_prop): Ditto.
+ (do_store_copy_prop): Ditto.
+ * gcc/ipa-prop.h (ipcp_driver): Ditto.
+ * gcc/cfglayout.c (insn_locators_initialize): Ditto.
+ * gcc/tree-ssa-forwprop.c
+ (tree_ssa_forward_propagate_single_use_vars): Ditto.
+ * gcc/cfglayout.h (insn_locators_initialize): Ditto.
+ * gcc/tree-ssa-dce.c (tree_ssa_dce): Ditto.
+ * gcc/tree-ssa.c (execute_early_warn_uninitialized): Ditto.
+ (execute_late_warn_uninitialized): Ditto.
+ * gcc/rtl.h (cleanup_barriers): Ditto.
+ (split_all_insns_noflow): Ditto.
+ (purge_line_number_notes): Ditto.
+ (unshare_all_rtl): Ditto.
+ (remove_unnecessary_notes): Ditto.
+ (recompute_reg_usage): Ditto.
+ (variable_tracking_main): Ditto.
+ * gcc/integrate.c (emit_initial_value_sets): Ditto.
+ * gcc/integrate.h (emit_initial_value_sets): Ditto.
+ * gcc/tree-optimize.c (execute_free_datastructures): Ditto
+ (execute_free_cfg_annotations): Ditto.
+ (execute_fixup_cfg): Ditto.
+ (execute_cleanup_cfg_pre_ipa): Ditto.
+ (execute_cleanup_cfg_post_optimizing): Ditto.
+ (execute_init_datastructures): Ditto.
+ * gcc/tree-object-size.c (compute_object_sizes): Ditto.
+ * gcc/combine.c (rest_of_handle_combine): Ditto.
+ * gcc/tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
+ * gcc/bb-reorder.c (duplicate_computed_gotos): Ditto.
+ (rest_of_handle_reorder_blocks): Ditto.
+ (rest_of_handle_partition_blocks): Ditto.
+ * gcc/var-tracking.c (variable_tracking_main): Ditto.
+ * gcc/tree-profile.c (tree_profiling): Ditto.
+ * gcc/tree-vect-generic.c (expand_vector_operations): Ditto.
+ * gcc/reg-stack.c (rest_of_handle_stack_regs): Ditto.
+ * gcc/sched-rgn.c (rest_of_handle_sched): Ditto.
+ (rest_of_handle_sched2): Ditto.
+ * gcc/basic-block.h (free_bb_insn): Ditto.
+ * gcc/tree-ssa-structalias.c (ipa_pta_execute): Ditto.
+ * gcc/tree-cfg.c (execute_build_cfg): Ditto.
+ (remove_useless_stmts): Ditto.
+ (split_critical_edges): Ditto.
+ (execute_warn_function_return): Ditto.
+ (execute_warn_function_noreturn): Ditto.
+ * gcc/tree-ssa-reassoc.c (execute_reassoc): Ditto.
+ * gcc/cfgrtl.c (free_bb_for_insn): Ditto.
+ * gcc/passes.c (execute_one_pass): Run additional
+ todos returned by execute function.
+ * gcc/tree-pass.h (struct tree_opt_pass): Make execute
+ return a value.
+
2006-03-02 Richard Guenther <rguenther@suse.de>
* tree-ssa-alias.c (find_used_portions): Consider taking
diff --git a/gcc/alias.c b/gcc/alias.c
index 5e15285..d66d0c7 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -2645,7 +2645,7 @@ end_alias_analysis (void)
/* Do control and data flow analysis; write some of the results to the
dump file. */
-static void
+static unsigned int
rest_of_handle_cfg (void)
{
if (dump_file)
@@ -2653,6 +2653,7 @@ rest_of_handle_cfg (void)
if (optimize)
cleanup_cfg (CLEANUP_EXPENSIVE
| (flag_thread_jumps ? CLEANUP_THREADING : 0));
+ return 0;
}
struct tree_opt_pass pass_cfg =
diff --git a/gcc/basic-block.h b/gcc/basic-block.h
index 2a2e8de..e8e08a0 100644
--- a/gcc/basic-block.h
+++ b/gcc/basic-block.h
@@ -483,7 +483,7 @@ extern bitmap_obstack reg_obstack;
#define set_block_for_insn(INSN, BB) (BLOCK_FOR_INSN (INSN) = BB)
extern void compute_bb_for_insn (void);
-extern void free_bb_for_insn (void);
+extern unsigned int free_bb_for_insn (void);
extern void update_bb_for_insn (basic_block);
extern void free_basic_block_vars (void);
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 6409070..412f78a2 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -1979,7 +1979,7 @@ gate_duplicate_computed_gotos (void)
}
-static void
+static unsigned int
duplicate_computed_gotos (void)
{
basic_block bb, new_bb;
@@ -1987,10 +1987,10 @@ duplicate_computed_gotos (void)
int max_size;
if (n_basic_blocks <= NUM_FIXED_BLOCKS + 1)
- return;
+ return 0;
if (targetm.cannot_modify_jumps_p ())
- return;
+ return 0;
cfg_layout_initialize (0);
@@ -2083,6 +2083,7 @@ done:
cfg_layout_finalize ();
BITMAP_FREE (candidates);
+ return 0;
}
struct tree_opt_pass pass_duplicate_computed_gotos =
@@ -2201,7 +2202,7 @@ gate_handle_reorder_blocks (void)
/* Reorder basic blocks. */
-static void
+static unsigned int
rest_of_handle_reorder_blocks (void)
{
bool changed;
@@ -2234,6 +2235,7 @@ rest_of_handle_reorder_blocks (void)
/* Add NOTE_INSN_SWITCH_TEXT_SECTIONS notes. */
insert_section_boundary_note ();
+ return 0;
}
struct tree_opt_pass pass_reorder_blocks =
@@ -2267,7 +2269,7 @@ gate_handle_partition_blocks (void)
}
/* Partition hot and cold basic blocks. */
-static void
+static unsigned int
rest_of_handle_partition_blocks (void)
{
no_new_pseudos = 0;
@@ -2276,6 +2278,7 @@ rest_of_handle_partition_blocks (void)
update_life_info (NULL, UPDATE_LIFE_GLOBAL_RM_NOTES,
PROP_LOG_LINKS | PROP_REG_INFO | PROP_DEATH_NOTES);
no_new_pseudos = 1;
+ return 0;
}
struct tree_opt_pass pass_partition_blocks =
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index a0a89bc..8531555 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -1489,7 +1489,7 @@ gate_handle_branch_target_load_optimize (void)
}
-static void
+static unsigned int
rest_of_handle_branch_target_load_optimize (void)
{
static int warned = 0;
@@ -1508,6 +1508,7 @@ rest_of_handle_branch_target_load_optimize (void)
}
branch_target_load_optimize (epilogue_completed);
+ return 0;
}
struct tree_opt_pass pass_branch_target_load_optimize =
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 0e67415..2dd4ff2 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -2268,13 +2268,14 @@ cleanup_cfg (int mode)
return changed;
}
-static void
+static unsigned int
rest_of_handle_jump (void)
{
delete_unreachable_blocks ();
if (cfun->tail_call_emit)
fixup_tail_calls ();
+ return 0;
}
struct tree_opt_pass pass_jump =
@@ -2296,7 +2297,7 @@ struct tree_opt_pass pass_jump =
};
-static void
+static unsigned int
rest_of_handle_jump2 (void)
{
/* Turn NOTE_INSN_EXPECTED_VALUE into REG_BR_PROB. Do this
@@ -2324,6 +2325,7 @@ rest_of_handle_jump2 (void)
maximum instruction UID, so if we can reduce the maximum UID
we'll save big on memory. */
renumber_insns ();
+ return 0;
}
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index c0bf209..65ebdb7 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -1572,7 +1572,7 @@ discover_nonconstant_array_refs (void)
confuse the CFG hooks, so be careful to not manipulate CFG during
the expansion. */
-static void
+static unsigned int
tree_expand_cfg (void)
{
basic_block bb, init_block;
@@ -1685,6 +1685,7 @@ tree_expand_cfg (void)
/* After expanding, the return labels are no longer needed. */
return_label = NULL;
naked_return_label = NULL;
+ return 0;
}
struct tree_opt_pass pass_expand =
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 265afd7..bcdeb96 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -246,7 +246,7 @@ int epilogue_locator;
represented via INSN_NOTEs. Replace them by representation using
INSN_LOCATORs. */
-void
+unsigned int
insn_locators_initialize (void)
{
tree block = NULL;
@@ -329,6 +329,7 @@ insn_locators_initialize (void)
set_block_levels (DECL_INITIAL (cfun->decl), 0);
free_block_changes ();
+ return 0;
}
struct tree_opt_pass pass_insn_locators_initialize =
diff --git a/gcc/cfglayout.h b/gcc/cfglayout.h
index 52bd4e9..4bc1e67 100644
--- a/gcc/cfglayout.h
+++ b/gcc/cfglayout.h
@@ -27,7 +27,7 @@ extern rtx cfg_layout_function_footer;
extern void cfg_layout_initialize (unsigned int);
extern void cfg_layout_finalize (void);
-extern void insn_locators_initialize (void);
+extern unsigned int insn_locators_initialize (void);
extern void reemit_insn_block_notes (void);
extern bool can_copy_bbs_p (basic_block *, unsigned);
extern void copy_bbs (basic_block *, unsigned, basic_block *,
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index d6a576d..f8de04b 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -414,13 +414,14 @@ compute_bb_for_insn (void)
/* Release the basic_block_for_insn array. */
-void
+unsigned int
free_bb_for_insn (void)
{
rtx insn;
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
if (!BARRIER_P (insn))
BLOCK_FOR_INSN (insn) = NULL;
+ return 0;
}
struct tree_opt_pass pass_free_cfg =
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index f0081b6..f6540c0 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -618,7 +618,7 @@ initialize_inline_failed (struct cgraph_node *node)
/* Rebuild call edges from current function after a passes not aware
of cgraph updating. */
-static void
+static unsigned int
rebuild_cgraph_edges (void)
{
basic_block bb;
@@ -643,6 +643,7 @@ rebuild_cgraph_edges (void)
}
initialize_inline_failed (node);
gcc_assert (!node->global.inlined_to);
+ return 0;
}
struct tree_opt_pass pass_rebuild_cgraph_edges =
diff --git a/gcc/combine.c b/gcc/combine.c
index 32d3f67..b7199ad 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -12578,7 +12578,7 @@ gate_handle_combine (void)
}
/* Try combining insns through substitution. */
-static void
+static unsigned int
rest_of_handle_combine (void)
{
int rebuild_jump_labels_after_combine
@@ -12596,6 +12596,7 @@ rest_of_handle_combine (void)
delete_dead_jumptables ();
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_UPDATE_LIFE);
}
+ return 0;
}
struct tree_opt_pass pass_combine =
diff --git a/gcc/cse.c b/gcc/cse.c
index 7d6f46b..681e941 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -7838,7 +7838,7 @@ gate_handle_cse (void)
return optimize > 0;
}
-static void
+static unsigned int
rest_of_handle_cse (void)
{
int tem;
@@ -7865,6 +7865,7 @@ rest_of_handle_cse (void)
if (tem || optimize > 1)
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP);
+ return 0;
}
struct tree_opt_pass pass_cse =
@@ -7893,7 +7894,7 @@ gate_handle_cse2 (void)
}
/* Run second CSE pass after loop optimizations. */
-static void
+static unsigned int
rest_of_handle_cse2 (void)
{
int tem;
@@ -7922,6 +7923,7 @@ rest_of_handle_cse2 (void)
}
reg_scan (get_insns (), max_reg_num ());
cse_not_expected = 1;
+ return 0;
}
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 7dfdd3a..06721c6 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -2142,10 +2142,11 @@ unshare_all_rtl_again (rtx insn)
unshare_all_rtl_1 (cfun->decl, insn);
}
-void
+unsigned int
unshare_all_rtl (void)
{
unshare_all_rtl_1 (current_function_decl, get_insns ());
+ return 0;
}
struct tree_opt_pass pass_unshare_all_rtl =
@@ -3678,7 +3679,7 @@ find_line_note (rtx insn)
/* Remove unnecessary notes from the instruction stream. */
-void
+unsigned int
remove_unnecessary_notes (void)
{
rtx eh_stack = NULL_RTX;
@@ -3730,6 +3731,7 @@ remove_unnecessary_notes (void)
/* Too many EH_REGION_BEG notes. */
gcc_assert (!eh_stack);
+ return 0;
}
struct tree_opt_pass pass_remove_unnecessary_notes =
diff --git a/gcc/except.c b/gcc/except.c
index fba9918..90a75ad 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2694,7 +2694,7 @@ can_throw_external (rtx insn)
/* Set TREE_NOTHROW and cfun->all_throwers_are_sibcalls. */
-void
+unsigned int
set_nothrow_function_flags (void)
{
rtx insn;
@@ -2710,7 +2710,7 @@ set_nothrow_function_flags (void)
cfun->all_throwers_are_sibcalls = 1;
if (! flag_exceptions)
- return;
+ return 0;
for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
if (can_throw_external (insn))
@@ -2720,7 +2720,7 @@ set_nothrow_function_flags (void)
if (!CALL_P (insn) || !SIBLING_CALL_P (insn))
{
cfun->all_throwers_are_sibcalls = 0;
- return;
+ return 0;
}
}
@@ -2733,9 +2733,10 @@ set_nothrow_function_flags (void)
if (!CALL_P (insn) || !SIBLING_CALL_P (insn))
{
cfun->all_throwers_are_sibcalls = 0;
- return;
+ return 0;
}
}
+ return 0;
}
struct tree_opt_pass pass_set_nothrow_function_flags =
@@ -3141,7 +3142,7 @@ add_call_site (rtx landing_pad, int action)
The new note numbers will not refer to region numbers, but
instead to call site entries. */
-void
+unsigned int
convert_to_eh_region_ranges (void)
{
rtx insn, iter, note;
@@ -3153,7 +3154,7 @@ convert_to_eh_region_ranges (void)
int call_site = 0;
if (USING_SJLJ_EXCEPTIONS || cfun->eh->region_tree == NULL)
- return;
+ return 0;
VARRAY_UCHAR_INIT (cfun->eh->action_record_data, 64, "action_record_data");
@@ -3262,6 +3263,7 @@ convert_to_eh_region_ranges (void)
}
htab_delete (ar_hash);
+ return 0;
}
struct tree_opt_pass pass_convert_to_eh_region_ranges =
@@ -3858,12 +3860,13 @@ gate_handle_eh (void)
}
/* Complete generation of exception handling code. */
-static void
+static unsigned int
rest_of_handle_eh (void)
{
cleanup_cfg (CLEANUP_PRE_LOOP | CLEANUP_NO_INSN_DEL);
finish_eh_generation ();
cleanup_cfg (CLEANUP_PRE_LOOP | CLEANUP_NO_INSN_DEL);
+ return 0;
}
struct tree_opt_pass pass_rtl_eh =
diff --git a/gcc/except.h b/gcc/except.h
index 2b2115a..46914d4 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -52,7 +52,7 @@ extern bool can_throw_external_1 (int, bool);
extern bool can_throw_external (rtx);
/* Set TREE_NOTHROW and cfun->all_throwers_are_sibcalls. */
-extern void set_nothrow_function_flags (void);
+extern unsigned int set_nothrow_function_flags (void);
/* After initial rtl generation, call back to finish generating
exception support code. */
@@ -65,7 +65,7 @@ extern rtx reachable_handlers (rtx);
extern void maybe_remove_eh_handler (rtx);
extern void convert_from_eh_region_ranges (void);
-extern void convert_to_eh_region_ranges (void);
+extern unsigned int convert_to_eh_region_ranges (void);
extern void find_exception_handler_labels (void);
extern bool current_function_has_exception_handlers (void);
extern void output_function_exception_table (void);
diff --git a/gcc/final.c b/gcc/final.c
index c145045..0459664 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -679,7 +679,7 @@ insn_current_reference_address (rtx branch)
/* Compute branch alignments based on frequency information in the
CFG. */
-static void
+static unsigned int
compute_alignments (void)
{
int log, max_skip, max_log;
@@ -697,7 +697,7 @@ compute_alignments (void)
/* If not optimizing or optimizing for size, don't assign any alignments. */
if (! optimize || optimize_size)
- return;
+ return 0;
FOR_EACH_BB (bb)
{
@@ -760,6 +760,7 @@ compute_alignments (void)
LABEL_TO_ALIGNMENT (label) = max_log;
LABEL_TO_MAX_SKIP (label) = max_skip;
}
+ return 0;
}
struct tree_opt_pass pass_compute_alignments =
@@ -3903,7 +3904,7 @@ debug_free_queue (void)
}
/* Turn the RTL into assembly. */
-static void
+static unsigned int
rest_of_handle_final (void)
{
rtx x;
@@ -3958,6 +3959,7 @@ rest_of_handle_final (void)
timevar_push (TV_SYMOUT);
(*debug_hooks->function_decl) (current_function_decl);
timevar_pop (TV_SYMOUT);
+ return 0;
}
struct tree_opt_pass pass_final =
@@ -3978,11 +3980,12 @@ struct tree_opt_pass pass_final =
};
-static void
+static unsigned int
rest_of_handle_shorten_branches (void)
{
/* Shorten branches. */
shorten_branches (get_insns ());
+ return 0;
}
struct tree_opt_pass pass_shorten_branches =
@@ -4003,7 +4006,7 @@ struct tree_opt_pass pass_shorten_branches =
};
-static void
+static unsigned int
rest_of_clean_state (void)
{
rtx insn, next;
@@ -4065,6 +4068,7 @@ rest_of_clean_state (void)
/* We're done with this function. Free up memory if we can. */
free_after_parsing (cfun);
free_after_compilation (cfun);
+ return 0;
}
struct tree_opt_pass pass_clean_state =
diff --git a/gcc/flow.c b/gcc/flow.c
index 2e78674..ff03ca6 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -4409,7 +4409,7 @@ debug_regset (regset r)
It might be worthwhile to update REG_LIVE_LENGTH, REG_BASIC_BLOCK and
possibly other information which is used by the register allocators. */
-void
+unsigned int
recompute_reg_usage (void)
{
allocate_reg_life_data ();
@@ -4421,6 +4421,7 @@ recompute_reg_usage (void)
if (dump_file)
dump_flow_info (dump_file, dump_flags);
+ return 0;
}
struct tree_opt_pass pass_recompute_reg_usage =
@@ -4608,10 +4609,11 @@ gate_remove_death_notes (void)
return flag_profile_values;
}
-static void
+static unsigned int
rest_of_handle_remove_death_notes (void)
{
count_or_remove_death_notes (NULL, 1);
+ return 0;
}
struct tree_opt_pass pass_remove_death_notes =
@@ -4632,7 +4634,7 @@ struct tree_opt_pass pass_remove_death_notes =
};
/* Perform life analysis. */
-static void
+static unsigned int
rest_of_handle_life (void)
{
regclass_init ();
@@ -4661,6 +4663,7 @@ rest_of_handle_life (void)
}
no_new_pseudos = 1;
+ return 0;
}
struct tree_opt_pass pass_life =
@@ -4681,7 +4684,7 @@ struct tree_opt_pass pass_life =
'f' /* letter */
};
-static void
+static unsigned int
rest_of_handle_flow2 (void)
{
/* If optimizing, then go ahead and split insns now. */
@@ -4703,6 +4706,7 @@ rest_of_handle_flow2 (void)
thread_prologue_and_epilogue_insns (get_insns ());
epilogue_completed = 1;
flow2_completed = 1;
+ return 0;
}
struct tree_opt_pass pass_flow2 =
diff --git a/gcc/function.c b/gcc/function.c
index 00a673a..9283b50 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1665,7 +1665,7 @@ instantiate_decls (tree fndecl)
/* Pass through the INSNS of function FNDECL and convert virtual register
references to hard register references. */
-static void
+static unsigned int
instantiate_virtual_regs (void)
{
rtx insn;
@@ -1717,6 +1717,7 @@ instantiate_virtual_regs (void)
/* Indicate that, from now on, assign_stack_local should use
frame_pointer_rtx. */
virtuals_instantiated = 1;
+ return 0;
}
struct tree_opt_pass pass_instantiate_virtual_regs =
@@ -3934,7 +3935,7 @@ init_function_start (tree subr)
/* Make sure all values used by the optimization passes have sane
defaults. */
-void
+unsigned int
init_function_for_compilation (void)
{
reg_renumber = 0;
@@ -3944,6 +3945,7 @@ init_function_for_compilation (void)
gcc_assert (VEC_length (int, prologue) == 0);
gcc_assert (VEC_length (int, epilogue) == 0);
gcc_assert (VEC_length (int, sibcall_epilogue) == 0);
+ return 0;
}
struct tree_opt_pass pass_init_function =
@@ -5568,13 +5570,14 @@ current_function_name (void)
}
-static void
+static unsigned int
rest_of_handle_check_leaf_regs (void)
{
#ifdef LEAF_REGISTERS
current_function_uses_only_leaf_regs
= optimize > 0 && only_leaf_regs_used () && leaf_function_p ();
#endif
+ return 0;
}
struct tree_opt_pass pass_leaf_regs =
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 4270737..a3ec8c0 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -6621,7 +6621,7 @@ gate_handle_jump_bypass (void)
}
/* Perform jump bypassing and control flow optimizations. */
-static void
+static unsigned int
rest_of_handle_jump_bypass (void)
{
cleanup_cfg (CLEANUP_EXPENSIVE);
@@ -6633,6 +6633,7 @@ rest_of_handle_jump_bypass (void)
cleanup_cfg (CLEANUP_EXPENSIVE);
delete_trivially_dead_insns (get_insns (), max_reg_num ());
}
+ return 0;
}
struct tree_opt_pass pass_jump_bypass =
@@ -6661,7 +6662,7 @@ gate_handle_gcse (void)
}
-static void
+static unsigned int
rest_of_handle_gcse (void)
{
int save_csb, save_cfj;
@@ -6701,6 +6702,7 @@ rest_of_handle_gcse (void)
flag_cse_skip_blocks = save_csb;
flag_cse_follow_jumps = save_cfj;
+ return 0;
}
struct tree_opt_pass pass_gcse =
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 69f9894..6de2b8f 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -58,7 +58,7 @@ static void lower_return_expr (tree_stmt_iterator *, struct lower_data *);
/* Lowers the body of current_function_decl. */
-static void
+static unsigned int
lower_function_body (void)
{
struct lower_data data;
@@ -118,6 +118,7 @@ lower_function_body (void)
= blocks_nreverse (BLOCK_SUBBLOCKS (data.block));
clear_block_marks (data.block);
+ return 0;
}
struct tree_opt_pass pass_lower_cf =
@@ -610,10 +611,11 @@ mark_blocks_with_used_vars (tree block)
/* Mark the used attribute on blocks correctly. */
-static void
+static unsigned int
mark_used_blocks (void)
{
mark_blocks_with_used_vars (DECL_INITIAL (current_function_decl));
+ return 0;
}
diff --git a/gcc/global.c b/gcc/global.c
index 4cead23..0642a70 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -2499,7 +2499,7 @@ make_accurate_live_analysis (void)
}
/* Run old register allocator. Return TRUE if we must exit
rest_of_compilation upon return. */
-static void
+static unsigned int
rest_of_handle_global_alloc (void)
{
bool failure;
@@ -2524,6 +2524,7 @@ rest_of_handle_global_alloc (void)
gcc_assert (reload_completed || failure);
reload_completed = !failure;
+ return 0;
}
struct tree_opt_pass pass_global_alloc =
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 5d156a6..23a9b3c 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -3896,7 +3896,7 @@ gate_handle_if_conversion (void)
}
/* If-conversion and CFG cleanup. */
-static void
+static unsigned int
rest_of_handle_if_conversion (void)
{
if (flag_if_conversion)
@@ -3912,6 +3912,7 @@ rest_of_handle_if_conversion (void)
cleanup_cfg (CLEANUP_EXPENSIVE);
reg_scan (get_insns (), max_reg_num ());
timevar_pop (TV_JUMP);
+ return 0;
}
struct tree_opt_pass pass_rtl_ifcvt =
@@ -3940,12 +3941,13 @@ gate_handle_if_after_combine (void)
/* Rerun if-conversion, as combine may have simplified things enough
to now meet sequence length restrictions. */
-static void
+static unsigned int
rest_of_handle_if_after_combine (void)
{
no_new_pseudos = 0;
if_convert (1);
no_new_pseudos = 1;
+ return 0;
}
struct tree_opt_pass pass_if_after_combine =
@@ -3973,7 +3975,7 @@ gate_handle_if_after_reload (void)
return (optimize > 0);
}
-static void
+static unsigned int
rest_of_handle_if_after_reload (void)
{
/* Last attempt to optimize CFG, as scheduling, peepholing and insn
@@ -3983,6 +3985,7 @@ rest_of_handle_if_after_reload (void)
| (flag_crossjumping ? CLEANUP_CROSSJUMP : 0));
if (flag_if_conversion2)
if_convert (1);
+ return 0;
}
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 9ac14a0..9876935 100644
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -278,7 +278,7 @@ has_hard_reg_initial_val (enum machine_mode mode, unsigned int regno)
return NULL_RTX;
}
-void
+unsigned int
emit_initial_value_sets (void)
{
struct initial_value_struct *ivs = cfun->hard_reg_initial_vals;
@@ -286,7 +286,7 @@ emit_initial_value_sets (void)
rtx seq;
if (ivs == 0)
- return;
+ return 0;
start_sequence ();
for (i = 0; i < ivs->num_entries; i++)
@@ -295,6 +295,7 @@ emit_initial_value_sets (void)
end_sequence ();
emit_insn_after (seq, entry_of_function ());
+ return 0;
}
struct tree_opt_pass pass_initial_value_sets =
diff --git a/gcc/integrate.h b/gcc/integrate.h
index 7987627..2c90098 100644
--- a/gcc/integrate.h
+++ b/gcc/integrate.h
@@ -27,7 +27,7 @@ extern rtx has_hard_reg_initial_val (enum machine_mode, unsigned int);
it, else return NULL_RTX. */
extern rtx get_hard_reg_initial_reg (struct function *, rtx);
/* Called from rest_of_compilation. */
-extern void emit_initial_value_sets (void);
+extern unsigned int emit_initial_value_sets (void);
extern void allocate_initial_values (rtx *);
/* Check whether there's any attribute in a function declaration that
diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c
index 23e8de8..898d95e 100644
--- a/gcc/ipa-cp.c
+++ b/gcc/ipa-cp.c
@@ -1079,7 +1079,7 @@ ipcp_insert_stage (void)
}
/* The IPCP driver. */
-void
+unsigned int
ipcp_driver (void)
{
if (dump_file)
@@ -1117,6 +1117,7 @@ ipcp_driver (void)
if (dump_file)
fprintf (dump_file, "\nIPA constant propagation end\n");
cgraph_remove_unreachable_nodes (true, NULL);
+ return 0;
}
/* Gate for IPCP optimization. */
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 2cb6b42..9ba2f10 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -863,7 +863,7 @@ cgraph_decide_inlining_of_small_functions (void)
/* Decide on the inlining. We do so in the topological order to avoid
expenses on updating data structures. */
-static void
+static unsigned int
cgraph_decide_inlining (void)
{
struct cgraph_node *node;
@@ -1034,6 +1034,7 @@ cgraph_decide_inlining (void)
overall_insns);
free (order);
timevar_pop (TV_INLINE_HEURISTICS);
+ return 0;
}
/* Decide on the inlining. We do so in the topological order to avoid
@@ -1132,7 +1133,7 @@ struct tree_opt_pass pass_ipa_inline =
/* Do inlining of small functions. Doing so early helps profiling and other
passes to be somewhat more effective and avoids some code duplication in
later real inlining pass for testcases with very many function calls. */
-static void
+static unsigned int
cgraph_early_inlining (void)
{
struct cgraph_node *node;
@@ -1142,7 +1143,7 @@ cgraph_early_inlining (void)
int i;
if (sorrycount || errorcount)
- return;
+ return 0;
#ifdef ENABLE_CHECKING
for (node = cgraph_nodes; node; node = node->next)
gcc_assert (!node->aux);
@@ -1163,6 +1164,7 @@ cgraph_early_inlining (void)
gcc_assert (!node->global.inlined_to);
#endif
free (order);
+ return 0;
}
/* When inlining shall be performed. */
diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h
index 82d0ca5..b5c5f2d 100644
--- a/gcc/ipa-prop.h
+++ b/gcc/ipa-prop.h
@@ -199,6 +199,6 @@ void ipa_nodes_free (void);
void ipa_method_tree_print (FILE *);
void ipa_method_modify_print (FILE *);
-void ipcp_driver (void);
+unsigned int ipcp_driver (void);
#endif /* IPA_PROP_H */
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 1026d9b..079af5e 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -572,7 +572,7 @@ analyze_function (struct cgraph_node *fn)
on the local information that was produced by ipa_analyze_function
and ipa_analyze_variable. */
-static void
+static unsigned int
static_execute (void)
{
struct cgraph_node *node;
@@ -703,6 +703,7 @@ static_execute (void)
}
free (order);
+ return 0;
}
static bool
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index fe2f807..077aa18 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -888,7 +888,7 @@ clean_function (struct cgraph_node *fn)
on the local information that was produced by ipa_analyze_function
and ipa_analyze_variable. */
-static void
+static unsigned int
static_execute (void)
{
struct cgraph_node *node;
@@ -1302,6 +1302,7 @@ static_execute (void)
&& (cgraph_function_body_availability (node) == AVAIL_OVERWRITABLE))
clean_function (node);
}
+ return 0;
}
diff --git a/gcc/ipa-type-escape.c b/gcc/ipa-type-escape.c
index 37a61e4..b2ee148 100644
--- a/gcc/ipa-type-escape.c
+++ b/gcc/ipa-type-escape.c
@@ -1670,7 +1670,7 @@ close_addressof_down (int uid)
/* The main entry point for type escape analysis. */
-static void
+static unsigned int
type_escape_execute (void)
{
struct cgraph_node *node;
@@ -1817,6 +1817,7 @@ type_escape_execute (void)
BITMAP_FREE (been_there_done_that);
BITMAP_FREE (bitmap_tmp);
BITMAP_FREE (results_of_malloc);
+ return 0;
}
static bool
diff --git a/gcc/jump.c b/gcc/jump.c
index 05780b2..38d1146 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -104,7 +104,7 @@ rebuild_jump_labels (rtx f)
This simple pass moves barriers and removes duplicates so that the
old code is happy.
*/
-void
+unsigned int
cleanup_barriers (void)
{
rtx insn, next, prev;
@@ -120,6 +120,7 @@ cleanup_barriers (void)
reorder_insns (insn, insn, prev);
}
}
+ return 0;
}
struct tree_opt_pass pass_cleanup_barriers =
@@ -139,7 +140,7 @@ struct tree_opt_pass pass_cleanup_barriers =
0 /* letter */
};
-void
+unsigned int
purge_line_number_notes (void)
{
rtx last_note = 0;
@@ -175,6 +176,7 @@ purge_line_number_notes (void)
last_note = insn;
}
}
+ return 0;
}
struct tree_opt_pass pass_purge_lineno_notes =
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index 820e0b6..f751c0f 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -2523,7 +2523,7 @@ dump_local_alloc (FILE *file)
/* Run old register allocator. Return TRUE if we must exit
rest_of_compilation upon return. */
-static void
+static unsigned int
rest_of_handle_local_alloc (void)
{
int rebuild_notes;
@@ -2566,6 +2566,7 @@ rest_of_handle_local_alloc (void)
dump_local_alloc (dump_file);
timevar_pop (TV_DUMP);
}
+ return 0;
}
struct tree_opt_pass pass_local_alloc =
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index bf13fd0..d2c6340 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -164,7 +164,7 @@ struct tree_opt_pass pass_loop2 =
/* Initialization of the RTL loop passes. */
-static void
+static unsigned int
rtl_loop_init (void)
{
if (dump_file)
@@ -174,6 +174,7 @@ rtl_loop_init (void)
cfg_layout_initialize (0);
current_loops = loop_optimizer_init (LOOPS_NORMAL);
+ return 0;
}
struct tree_opt_pass pass_rtl_loop_init =
@@ -195,7 +196,7 @@ struct tree_opt_pass pass_rtl_loop_init =
/* Finalization of the RTL loop passes. */
-static void
+static unsigned int
rtl_loop_done (void)
{
basic_block bb;
@@ -218,6 +219,7 @@ rtl_loop_done (void)
dump_flow_info (dump_file, dump_flags);
current_loops = NULL;
+ return 0;
}
struct tree_opt_pass pass_rtl_loop_done =
@@ -245,11 +247,12 @@ gate_rtl_move_loop_invariants (void)
return flag_move_loop_invariants;
}
-static void
+static unsigned int
rtl_move_loop_invariants (void)
{
if (current_loops)
move_loop_invariants (current_loops);
+ return 0;
}
struct tree_opt_pass pass_rtl_move_loop_invariants =
@@ -277,11 +280,12 @@ gate_rtl_unswitch (void)
return flag_unswitch_loops;
}
-static void
+static unsigned int
rtl_unswitch (void)
{
if (current_loops)
unswitch_loops (current_loops);
+ return 0;
}
struct tree_opt_pass pass_rtl_unswitch =
@@ -309,7 +313,7 @@ gate_rtl_unroll_and_peel_loops (void)
return (flag_peel_loops || flag_unroll_loops || flag_unroll_all_loops);
}
-static void
+static unsigned int
rtl_unroll_and_peel_loops (void)
{
if (current_loops)
@@ -325,6 +329,7 @@ rtl_unroll_and_peel_loops (void)
unroll_and_peel_loops (current_loops, flags);
}
+ return 0;
}
struct tree_opt_pass pass_rtl_unroll_and_peel_loops =
@@ -356,13 +361,14 @@ gate_rtl_doloop (void)
#endif
}
-static void
+static unsigned int
rtl_doloop (void)
{
#ifdef HAVE_doloop_end
if (current_loops)
doloop_optimize_loops (current_loops);
#endif
+ return 0;
}
struct tree_opt_pass pass_rtl_doloop =
diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c
index 26acab2..0d485dd 100644
--- a/gcc/mode-switching.c
+++ b/gcc/mode-switching.c
@@ -735,7 +735,7 @@ gate_mode_switching (void)
#endif
}
-static void
+static unsigned int
rest_of_handle_mode_switching (void)
{
#ifdef OPTIMIZE_MODE_SWITCHING
@@ -743,6 +743,7 @@ rest_of_handle_mode_switching (void)
optimize_mode_switching ();
no_new_pseudos = 1;
#endif /* OPTIMIZE_MODE_SWITCHING */
+ return 0;
}
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index fdba730..ee1a236 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -2500,7 +2500,7 @@ gate_handle_sms (void)
/* Run instruction scheduler. */
/* Perform SMS module scheduling. */
-static void
+static unsigned int
rest_of_handle_sms (void)
{
#ifdef INSN_SCHEDULING
@@ -2530,6 +2530,7 @@ rest_of_handle_sms (void)
cfg_layout_finalize ();
free_dominance_info (CDI_DOMINATORS);
#endif /* INSN_SCHEDULING */
+ return 0;
}
struct tree_opt_pass pass_sms =
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 38d4224..74be1e8 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -3331,7 +3331,7 @@ build_omp_regions (void)
/* Main entry point for expanding OMP-GIMPLE into runtime calls. */
-static void
+static unsigned int
execute_expand_omp (void)
{
build_omp_regions ();
@@ -3350,6 +3350,7 @@ execute_expand_omp (void)
root_omp_region = NULL;
omp_regions = NULL;
}
+ return 0;
}
static bool
@@ -4105,7 +4106,7 @@ lower_omp (tree *stmt_p, omp_context *ctx)
/* Main entry point. */
-static void
+static unsigned int
execute_lower_omp (void)
{
all_contexts = splay_tree_new (splay_tree_compare_pointers, 0,
@@ -4122,6 +4123,7 @@ execute_lower_omp (void)
splay_tree_delete (all_contexts);
all_contexts = NULL;
}
+ return 0;
}
static bool
diff --git a/gcc/passes.c b/gcc/passes.c
index 0babab7..c3702ef 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -807,6 +807,7 @@ static bool
execute_one_pass (struct tree_opt_pass *pass)
{
bool initializing_dump;
+ unsigned int todo_after = 0;
/* See if we're supposed to run this pass. */
if (pass->gate && !pass->gate ())
@@ -858,7 +859,7 @@ execute_one_pass (struct tree_opt_pass *pass)
/* Do it! */
if (pass->execute)
{
- pass->execute ();
+ todo_after = pass->execute ();
last_verified = 0;
}
@@ -880,7 +881,7 @@ execute_one_pass (struct tree_opt_pass *pass)
}
/* Run post-pass cleanup and verification. */
- execute_todo (pass->todo_flags_finish);
+ execute_todo (todo_after | pass->todo_flags_finish);
/* Flush and close dump file. */
if (dump_file_name)
diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c
index faa4a4b..76b7b8c 100644
--- a/gcc/postreload-gcse.c
+++ b/gcc/postreload-gcse.c
@@ -1365,12 +1365,13 @@ gate_handle_gcse2 (void)
}
-static void
+static unsigned int
rest_of_handle_gcse2 (void)
{
gcse_after_reload_main (get_insns ());
rebuild_jump_labels (get_insns ());
delete_trivially_dead_insns (get_insns (), max_reg_num ());
+ return 0;
}
struct tree_opt_pass pass_gcse2 =
diff --git a/gcc/postreload.c b/gcc/postreload.c
index fe2c7c8..5f4ae4f 100644
--- a/gcc/postreload.c
+++ b/gcc/postreload.c
@@ -1572,7 +1572,7 @@ gate_handle_postreload (void)
}
-static void
+static unsigned int
rest_of_handle_postreload (void)
{
/* Do a very simple CSE pass over just the hard registers. */
@@ -1581,6 +1581,7 @@ rest_of_handle_postreload (void)
Remove any EH edges associated with them. */
if (flag_non_call_exceptions)
purge_all_dead_edges ();
+ return 0;
}
struct tree_opt_pass pass_postreload_cse =
diff --git a/gcc/predict.c b/gcc/predict.c
index 8555982..c59e57b 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -1308,7 +1308,7 @@ call_expr:;
}
/* Predict branch probabilities and estimate profile of the tree CFG. */
-static void
+static unsigned int
tree_estimate_probability (void)
{
basic_block bb;
@@ -1396,6 +1396,7 @@ tree_estimate_probability (void)
dump_tree_cfg (dump_file, dump_flags);
if (profile_status == PROFILE_ABSENT)
profile_status = PROFILE_GUESSED;
+ return 0;
}
/* __builtin_expect dropped tokens into the insn stream describing expected
diff --git a/gcc/profile.c b/gcc/profile.c
index d3bce07..7fa9aad 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -1338,7 +1338,7 @@ tree_register_profile_hooks (void)
/* Do branch profiling and static profile estimation passes. */
-static void
+static unsigned int
rest_of_handle_branch_prob (void)
{
struct loops loops;
@@ -1357,6 +1357,7 @@ rest_of_handle_branch_prob (void)
flow_loops_free (&loops);
free_dominance_info (CDI_DOMINATORS);
+ return 0;
}
struct tree_opt_pass pass_branch_prob =
diff --git a/gcc/recog.c b/gcc/recog.c
index e3cdfd7..fde429c 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -2813,7 +2813,7 @@ split_all_insns (int upd_life)
/* Same as split_all_insns, but do not expect CFG to be available.
Used by machine dependent reorg passes. */
-void
+unsigned int
split_all_insns_noflow (void)
{
rtx next, insn;
@@ -2843,6 +2843,7 @@ split_all_insns_noflow (void)
split_insn (insn);
}
}
+ return 0;
}
#ifdef HAVE_peephole2
@@ -3446,12 +3447,13 @@ gate_handle_peephole2 (void)
return (optimize > 0 && flag_peephole2);
}
-static void
+static unsigned int
rest_of_handle_peephole2 (void)
{
#ifdef HAVE_peephole2
peephole2_optimize ();
#endif
+ return 0;
}
struct tree_opt_pass pass_peephole2 =
@@ -3471,10 +3473,11 @@ struct tree_opt_pass pass_peephole2 =
'z' /* letter */
};
-static void
+static unsigned int
rest_of_handle_split_all_insns (void)
{
split_all_insns (1);
+ return 0;
}
struct tree_opt_pass pass_split_all_insns =
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index eb7a3c1..73c132f 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -3136,7 +3136,7 @@ gate_handle_stack_regs (void)
/* Convert register usage from flat register file usage to a stack
register file. */
-static void
+static unsigned int
rest_of_handle_stack_regs (void)
{
#ifdef STACK_REGS
@@ -3151,6 +3151,7 @@ rest_of_handle_stack_regs (void)
}
}
#endif
+ return 0;
}
struct tree_opt_pass pass_stack_regs =
diff --git a/gcc/regmove.c b/gcc/regmove.c
index 1502c08..31f1851 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -2470,11 +2470,12 @@ gate_handle_regmove (void)
/* Register allocation pre-pass, to reduce number of moves necessary
for two-address machines. */
-static void
+static unsigned int
rest_of_handle_regmove (void)
{
regmove_optimize (get_insns (), max_reg_num ());
cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_UPDATE_LIFE);
+ return 0;
}
struct tree_opt_pass pass_regmove =
@@ -2502,7 +2503,7 @@ gate_handle_stack_adjustments (void)
return (optimize > 0);
}
-static void
+static unsigned int
rest_of_handle_stack_adjustments (void)
{
life_analysis (PROP_POSTRELOAD);
@@ -2517,6 +2518,7 @@ rest_of_handle_stack_adjustments (void)
if (!ACCUMULATE_OUTGOING_ARGS)
#endif
combine_stack_adjustments ();
+ return 0;
}
struct tree_opt_pass pass_stack_adjustments =
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 8d2a286..49e18c4 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -1953,13 +1953,14 @@ gate_handle_regrename (void)
/* Run the regrename and cprop passes. */
-static void
+static unsigned int
rest_of_handle_regrename (void)
{
if (flag_rename_registers)
regrename_optimize ();
if (flag_cprop_registers)
copyprop_hardreg_forward ();
+ return 0;
}
struct tree_opt_pass pass_regrename =
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 3376c00..7781d27 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -3775,12 +3775,13 @@ gate_handle_delay_slots (void)
}
/* Run delay slot optimization. */
-static void
+static unsigned int
rest_of_handle_delay_slots (void)
{
#ifdef DELAY_SLOTS
dbr_schedule (get_insns ());
#endif
+ return 0;
}
struct tree_opt_pass pass_delay_slots =
@@ -3809,10 +3810,11 @@ gate_handle_machine_reorg (void)
}
-static void
+static unsigned int
rest_of_handle_machine_reorg (void)
{
targetm.machine_dependent_reorg ();
+ return 0;
}
struct tree_opt_pass pass_machine_reorg =
diff --git a/gcc/rtl-factoring.c b/gcc/rtl-factoring.c
index 864836e..0cd1aaa 100644
--- a/gcc/rtl-factoring.c
+++ b/gcc/rtl-factoring.c
@@ -1414,7 +1414,7 @@ gate_rtl_seqabstr (void)
/* The entry point of the sequence abstraction algorithm. */
-static void
+static unsigned int
rest_of_rtl_seqabstr (void)
{
life_analysis (PROP_DEATH_NOTES | PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE);
@@ -1425,6 +1425,7 @@ rest_of_rtl_seqabstr (void)
/* Abstract out common insn sequences. */
rtl_seqabstr ();
+ return 0;
}
struct tree_opt_pass pass_rtl_seqabstr = {
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 9c088e9..4ee188c 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1600,7 +1600,7 @@ extern enum rtx_code swap_condition (enum rtx_code);
extern enum rtx_code unsigned_condition (enum rtx_code);
extern enum rtx_code signed_condition (enum rtx_code);
extern void mark_jump_label (rtx, rtx, int);
-extern void cleanup_barriers (void);
+extern unsigned int cleanup_barriers (void);
/* In jump.c */
extern bool squeeze_notes (rtx *, rtx *);
@@ -1781,7 +1781,7 @@ extern enum reg_class reg_preferred_class (int);
extern enum reg_class reg_alternate_class (int);
extern void split_all_insns (int);
-extern void split_all_insns_noflow (void);
+extern unsigned int split_all_insns_noflow (void);
#define MAX_SAVED_CONST_INT 64
extern GTY(()) rtx const_int_rtx[MAX_SAVED_CONST_INT * 2 + 1];
@@ -2027,7 +2027,7 @@ extern enum rtx_code reversed_comparison_code_parts (enum rtx_code,
rtx, rtx, rtx);
extern void delete_for_peephole (rtx, rtx);
extern int condjump_in_parallel_p (rtx);
-extern void purge_line_number_notes (void);
+extern unsigned int purge_line_number_notes (void);
/* In emit-rtl.c. */
extern int max_reg_num (void);
@@ -2049,7 +2049,7 @@ extern void init_emit_once (int);
extern void push_topmost_sequence (void);
extern void pop_topmost_sequence (void);
extern void set_new_first_and_last_insn (rtx, rtx);
-extern void unshare_all_rtl (void);
+extern unsigned int unshare_all_rtl (void);
extern void unshare_all_rtl_again (rtx);
extern void unshare_all_rtl_in_chain (rtx);
extern void verify_rtl_sharing (void);
@@ -2063,7 +2063,7 @@ extern void remove_insn (rtx);
extern void emit_insn_after_with_line_notes (rtx, rtx, rtx);
extern rtx emit (rtx);
extern void renumber_insns (void);
-extern void remove_unnecessary_notes (void);
+extern unsigned int remove_unnecessary_notes (void);
extern rtx delete_insn (rtx);
extern rtx entry_of_function (void);
extern void delete_insn_chain (rtx, rtx);
@@ -2133,7 +2133,7 @@ extern rtx move_by_pieces (rtx, rtx, unsigned HOST_WIDE_INT,
unsigned int, int);
/* In flow.c */
-extern void recompute_reg_usage (void);
+extern unsigned int recompute_reg_usage (void);
extern void delete_dead_jumptables (void);
extern void print_rtl_with_bb (FILE *, rtx);
extern void dump_flow_info (FILE *, int);
@@ -2256,7 +2256,7 @@ extern bool expensive_function_p (int);
extern void tracer (unsigned int);
/* In var-tracking.c */
-extern void variable_tracking_main (void);
+extern unsigned int variable_tracking_main (void);
/* In stor-layout.c. */
extern void get_mode_bounds (enum machine_mode, int, enum machine_mode,
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c
index 3109786..6239240 100644
--- a/gcc/sched-rgn.c
+++ b/gcc/sched-rgn.c
@@ -2635,7 +2635,7 @@ gate_handle_sched (void)
}
/* Run instruction scheduler. */
-static void
+static unsigned int
rest_of_handle_sched (void)
{
#ifdef INSN_SCHEDULING
@@ -2644,6 +2644,7 @@ rest_of_handle_sched (void)
schedule_insns ();
#endif
+ return 0;
}
static bool
@@ -2657,7 +2658,7 @@ gate_handle_sched2 (void)
}
/* Run second scheduling pass after reload. */
-static void
+static unsigned int
rest_of_handle_sched2 (void)
{
#ifdef INSN_SCHEDULING
@@ -2677,6 +2678,7 @@ rest_of_handle_sched2 (void)
else
schedule_insns ();
#endif
+ return 0;
}
struct tree_opt_pass pass_sched =
diff --git a/gcc/tracer.c b/gcc/tracer.c
index fc4aed7..c7bd2bd 100644
--- a/gcc/tracer.c
+++ b/gcc/tracer.c
@@ -387,7 +387,7 @@ gate_handle_tracer (void)
}
/* Run tracer. */
-static void
+static unsigned int
rest_of_handle_tracer (void)
{
if (dump_file)
@@ -395,6 +395,7 @@ rest_of_handle_tracer (void)
tracer (0);
cleanup_cfg (CLEANUP_EXPENSIVE);
reg_scan (get_insns (), max_reg_num ());
+ return 0;
}
struct tree_opt_pass pass_tracer =
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 60dacbd..1c689e2 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -106,7 +106,7 @@ static void make_switch_expr_edges (basic_block);
static void make_goto_expr_edges (basic_block);
static edge tree_redirect_edge_and_branch (edge, basic_block);
static edge tree_try_redirect_by_replacing_jump (edge, basic_block);
-static void split_critical_edges (void);
+static unsigned int split_critical_edges (void);
/* Various helpers. */
static inline bool stmt_starts_bb_p (tree, tree);
@@ -224,10 +224,11 @@ build_tree_cfg (tree *tp)
dump_tree_cfg (dump_file, dump_flags);
}
-static void
+static unsigned int
execute_build_cfg (void)
{
build_tree_cfg (&DECL_SAVED_TREE (current_function_decl));
+ return 0;
}
struct tree_opt_pass pass_build_cfg =
@@ -1994,7 +1995,7 @@ remove_useless_stmts_1 (tree *tp, struct rus_data *data)
}
}
-static void
+static unsigned int
remove_useless_stmts (void)
{
struct rus_data data;
@@ -2007,6 +2008,7 @@ remove_useless_stmts (void)
remove_useless_stmts_1 (&DECL_SAVED_TREE (current_function_decl), &data);
}
while (data.repeat);
+ return 0;
}
@@ -5445,7 +5447,7 @@ struct cfg_hooks tree_cfg_hooks = {
/* Split all critical edges. */
-static void
+static unsigned int
split_critical_edges (void)
{
basic_block bb;
@@ -5465,6 +5467,7 @@ split_critical_edges (void)
}
}
end_recording_case_labels ();
+ return 0;
}
struct tree_opt_pass pass_split_crit_edges =
@@ -5559,7 +5562,7 @@ gimplify_build1 (block_stmt_iterator *bsi, enum tree_code code, tree type,
/* Emit return warnings. */
-static void
+static unsigned int
execute_warn_function_return (void)
{
#ifdef USE_MAPPED_LOCATION
@@ -5632,6 +5635,7 @@ execute_warn_function_return (void)
}
}
}
+ return 0;
}
@@ -5678,7 +5682,7 @@ struct tree_opt_pass pass_warn_function_return =
/* Emit noreturn warnings. */
-static void
+static unsigned int
execute_warn_function_noreturn (void)
{
if (warn_missing_noreturn
@@ -5688,6 +5692,7 @@ execute_warn_function_noreturn (void)
warning (OPT_Wmissing_noreturn, "%Jfunction might be possible candidate "
"for attribute %<noreturn%>",
cfun->decl);
+ return 0;
}
struct tree_opt_pass pass_warn_function_noreturn =
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index dc0380a..57315d4 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -717,7 +717,7 @@ remove_forwarder_block_with_phi (basic_block bb)
<L10>:;
*/
-static void
+static unsigned int
merge_phi_nodes (void)
{
basic_block *worklist = XNEWVEC (basic_block, n_basic_blocks);
@@ -797,6 +797,7 @@ merge_phi_nodes (void)
}
free (worklist);
+ return 0;
}
static bool
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index d37a82e..0529131 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -1480,7 +1480,7 @@ expand_complex_operations_1 (block_stmt_iterator *bsi)
/* Entry point for complex operation lowering during optimization. */
-static void
+static unsigned int
tree_lower_complex (void)
{
int old_last_basic_block;
@@ -1488,7 +1488,7 @@ tree_lower_complex (void)
basic_block bb;
if (!init_dont_simulate_again ())
- return;
+ return 0;
complex_lattice_values = VEC_alloc (complex_lattice_t, heap, num_ssa_names);
VEC_safe_grow (complex_lattice_t, heap,
@@ -1525,6 +1525,7 @@ tree_lower_complex (void)
htab_delete (complex_variable_components);
VEC_free (tree, heap, complex_ssa_name_components);
VEC_free (complex_lattice_t, heap, complex_lattice_values);
+ return 0;
}
struct tree_opt_pass pass_lower_complex =
@@ -1549,7 +1550,7 @@ struct tree_opt_pass pass_lower_complex =
/* Entry point for complex operation lowering without optimization. */
-static void
+static unsigned int
tree_lower_complex_O0 (void)
{
int old_last_basic_block = last_basic_block;
@@ -1563,6 +1564,7 @@ tree_lower_complex_O0 (void)
for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
expand_complex_operations_1 (&bsi);
}
+ return 0;
}
static bool
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index 9c2ddcf..27f51de 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -103,7 +103,7 @@ htab_t default_defs;
various attributes for each variable used by alias analysis and the
optimizer. */
-static void
+static unsigned int
find_referenced_vars (void)
{
htab_t vars_found;
@@ -123,6 +123,7 @@ find_referenced_vars (void)
}
htab_delete (vars_found);
+ return 0;
}
struct tree_opt_pass pass_referenced_vars =
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 85379e6..202073d 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -1671,7 +1671,7 @@ lower_eh_constructs_1 (struct leh_state *state, tree *tp)
}
}
-static void
+static unsigned int
lower_eh_constructs (void)
{
struct leh_state null_state;
@@ -1687,6 +1687,7 @@ lower_eh_constructs (void)
htab_delete (finally_tree);
collect_eh_region_array ();
+ return 0;
}
struct tree_opt_pass pass_lower_eh =
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 557dffb..2a61020 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -102,7 +102,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "target.h"
/* local function prototypes */
-static void main_tree_if_conversion (void);
+static unsigned int main_tree_if_conversion (void);
static tree tree_if_convert_stmt (struct loop *loop, tree, tree,
block_stmt_iterator *);
static void tree_if_convert_cond_expr (struct loop *, tree, tree,
@@ -1098,14 +1098,14 @@ bb_with_exit_edge_p (struct loop *loop, basic_block bb)
/* Tree if-conversion pass management. */
-static void
+static unsigned int
main_tree_if_conversion (void)
{
unsigned i, loop_num;
struct loop *loop;
if (!current_loops)
- return;
+ return 0;
loop_num = current_loops->num;
for (i = 0; i < loop_num; i++)
@@ -1116,7 +1116,7 @@ main_tree_if_conversion (void)
tree_if_conversion (loop, true);
}
-
+ return 0;
}
static bool
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index 09a73b2..e0b6e6e 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -1731,7 +1731,7 @@ mark_def_site_blocks (sbitmap interesting_blocks)
Steps 3 and 4 are done using the dominator tree walker
(walk_dominator_tree). */
-static void
+static unsigned int
rewrite_into_ssa (void)
{
bitmap *dfs;
@@ -1775,6 +1775,7 @@ rewrite_into_ssa (void)
timevar_pop (TV_TREE_SSA_OTHER);
in_ssa_p = true;
+ return 0;
}
diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c
index 7384be0..5a1444d 100644
--- a/gcc/tree-mudflap.c
+++ b/gcc/tree-mudflap.c
@@ -57,13 +57,13 @@ static tree mf_file_function_line_tree (location_t);
static void mf_decl_cache_locals (void);
static void mf_decl_clear_locals (void);
static void mf_xform_derefs (void);
-static void execute_mudflap_function_ops (void);
+static unsigned int execute_mudflap_function_ops (void);
/* Addressable variables instrumentation. */
static void mf_xform_decls (tree, tree);
static tree mx_xfn_xform_decls (tree *, int *, void *);
static void mx_register_decls (tree, tree *);
-static void execute_mudflap_function_decls (void);
+static unsigned int execute_mudflap_function_decls (void);
/* ------------------------------------------------------------------------ */
@@ -409,14 +409,14 @@ mudflap_init (void)
tree optimizations have been performed, but we have to preserve the CFG
for expansion from trees to RTL. */
-static void
+static unsigned int
execute_mudflap_function_ops (void)
{
/* Don't instrument functions such as the synthetic constructor
built during mudflap_finish_file. */
if (mf_marked_p (current_function_decl) ||
DECL_ARTIFICIAL (current_function_decl))
- return;
+ return 0;
push_gimplify_context ();
@@ -430,6 +430,7 @@ execute_mudflap_function_ops (void)
mf_decl_clear_locals ();
pop_gimplify_context (NULL);
+ return 0;
}
/* Create and initialize local shadow variables for the lookup cache
@@ -940,14 +941,14 @@ mf_xform_derefs (void)
of their BIND_EXPR binding context, and we lose liveness information
for the declarations we wish to instrument. */
-static void
+static unsigned int
execute_mudflap_function_decls (void)
{
/* Don't instrument functions such as the synthetic constructor
built during mudflap_finish_file. */
if (mf_marked_p (current_function_decl) ||
DECL_ARTIFICIAL (current_function_decl))
- return;
+ return 0;
push_gimplify_context ();
@@ -955,6 +956,7 @@ execute_mudflap_function_decls (void)
DECL_ARGUMENTS (current_function_decl));
pop_gimplify_context (NULL);
+ return 0;
}
/* This struct is passed between mf_xform_decls to store state needed
diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c
index 761e6a0..54b964f 100644
--- a/gcc/tree-nrv.c
+++ b/gcc/tree-nrv.c
@@ -101,7 +101,7 @@ finalize_nrv_r (tree *tp, int *walk_subtrees, void *data)
then we could either have the languages register the optimization or
we could change the gating function to check the current language. */
-static void
+static unsigned int
tree_nrv (void)
{
tree result = DECL_RESULT (current_function_decl);
@@ -114,7 +114,7 @@ tree_nrv (void)
/* If this function does not return an aggregate type in memory, then
there is nothing to do. */
if (!aggregate_value_p (result, current_function_decl))
- return;
+ return 0;
/* Look through each block for assignments to the RESULT_DECL. */
FOR_EACH_BB (bb)
@@ -146,7 +146,7 @@ tree_nrv (void)
than previous return statements, then we can not perform
NRV optimizations. */
if (found != ret_expr)
- return;
+ return 0;
}
else
found = ret_expr;
@@ -161,13 +161,13 @@ tree_nrv (void)
|| DECL_ALIGN (found) > DECL_ALIGN (result)
|| !lang_hooks.types_compatible_p (TREE_TYPE (found),
result_type))
- return;
+ return 0;
}
}
}
if (!found)
- return;
+ return 0;
/* If dumping details, then note once and only the NRV replacement. */
if (dump_file && (dump_flags & TDF_DETAILS))
@@ -211,6 +211,7 @@ tree_nrv (void)
/* FOUND is no longer used. Ensure it gets removed. */
var_ann (found)->used = 0;
+ return 0;
}
struct tree_opt_pass pass_nrv =
@@ -242,7 +243,7 @@ struct tree_opt_pass pass_nrv =
escaped prior to the call. If it has, modifications to the local
variable will produce visible changes elsewhere, as in PR c++/19317. */
-static void
+static unsigned int
execute_return_slot_opt (void)
{
basic_block bb;
@@ -287,6 +288,7 @@ execute_return_slot_opt (void)
}
}
}
+ return 0;
}
struct tree_opt_pass pass_return_slot =
diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c
index fd7e427..068bacf 100644
--- a/gcc/tree-object-size.c
+++ b/gcc/tree-object-size.c
@@ -50,7 +50,7 @@ static void expr_object_size (struct object_size_info *, tree, tree);
static bool merge_object_sizes (struct object_size_info *, tree, tree,
unsigned HOST_WIDE_INT);
static bool plus_expr_object_size (struct object_size_info *, tree, tree);
-static void compute_object_sizes (void);
+static unsigned int compute_object_sizes (void);
static void init_offset_limit (void);
static void check_for_plus_in_loops (struct object_size_info *, tree);
static void check_for_plus_in_loops_1 (struct object_size_info *, tree,
@@ -982,7 +982,7 @@ fini_object_sizes (void)
/* Simple pass to optimize all __builtin_object_size () builtins. */
-static void
+static unsigned int
compute_object_sizes (void)
{
basic_block bb;
@@ -1054,6 +1054,7 @@ compute_object_sizes (void)
}
fini_object_sizes ();
+ return 0;
}
struct tree_opt_pass pass_object_sizes =
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c
index 34f2d46..fdf8ca1 100644
--- a/gcc/tree-optimize.c
+++ b/gcc/tree-optimize.c
@@ -100,10 +100,11 @@ struct tree_opt_pass pass_early_local_passes =
because after the tree optimizers have run such cleanups may
be necessary. */
-static void
+static unsigned int
execute_cleanup_cfg_pre_ipa (void)
{
cleanup_tree_cfg ();
+ return 0;
}
struct tree_opt_pass pass_cleanup_cfg =
@@ -129,13 +130,14 @@ struct tree_opt_pass pass_cleanup_cfg =
because after the tree optimizers have run such cleanups may
be necessary. */
-static void
+static unsigned int
execute_cleanup_cfg_post_optimizing (void)
{
fold_cond_expr_cond ();
cleanup_tree_cfg ();
cleanup_dead_labels ();
group_case_labels ();
+ return 0;
}
struct tree_opt_pass pass_cleanup_cfg_post_optimizing =
@@ -158,7 +160,7 @@ struct tree_opt_pass pass_cleanup_cfg_post_optimizing =
/* Pass: do the actions required to finish with tree-ssa optimization
passes. */
-static void
+static unsigned int
execute_free_datastructures (void)
{
/* ??? This isn't the right place for this. Worse, it got computed
@@ -169,6 +171,7 @@ execute_free_datastructures (void)
/* Remove the ssa structures. Do it here since this includes statement
annotations that need to be intact during disband_implicit_edges. */
delete_tree_ssa ();
+ return 0;
}
struct tree_opt_pass pass_free_datastructures =
@@ -189,7 +192,7 @@ struct tree_opt_pass pass_free_datastructures =
};
/* Pass: free cfg annotations. */
-static void
+static unsigned int
execute_free_cfg_annotations (void)
{
basic_block bb;
@@ -215,6 +218,7 @@ execute_free_cfg_annotations (void)
the integrity of statements in the EH throw table. */
verify_eh_throw_table_statements ();
#endif
+ return 0;
}
struct tree_opt_pass pass_free_cfg_annotations =
@@ -237,7 +241,7 @@ struct tree_opt_pass pass_free_cfg_annotations =
changed some properties - such as marked functions nothrow. Remove now
redundant edges and basic blocks. */
-static void
+static unsigned int
execute_fixup_cfg (void)
{
basic_block bb;
@@ -260,6 +264,7 @@ execute_fixup_cfg (void)
}
cleanup_tree_cfg ();
+ return 0;
}
struct tree_opt_pass pass_fixup_cfg =
@@ -282,11 +287,12 @@ struct tree_opt_pass pass_fixup_cfg =
/* Do the actions required to initialize internal data structures used
in tree-ssa optimization passes. */
-static void
+static unsigned int
execute_init_datastructures (void)
{
/* Allocate hash tables, arrays and other structures. */
init_tree_ssa ();
+ return 0;
}
struct tree_opt_pass pass_init_datastructures =
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index 558cedd..f2841ae 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -2505,7 +2505,7 @@ insert_backedge_copies (void)
R. Morgan, ``Building an Optimizing Compiler'',
Butterworth-Heinemann, Boston, MA, 1998. pp 176-186. */
-static void
+static unsigned int
rewrite_out_of_ssa (void)
{
var_map map;
@@ -2548,6 +2548,7 @@ rewrite_out_of_ssa (void)
delete_var_map (map);
in_ssa_p = false;
+ return 0;
}
diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h
index 0a1a354..a7c3f00 100644
--- a/gcc/tree-pass.h
+++ b/gcc/tree-pass.h
@@ -97,8 +97,9 @@ struct tree_opt_pass
bool (*gate) (void);
/* This is the code to run. If null, then there should be sub-passes
- otherwise this pass does nothing. */
- void (*execute) (void);
+ otherwise this pass does nothing. The return value contains
+ TODOs to execute in addition to those in TODO_flags_finish. */
+ unsigned int (*execute) (void);
/* A list of sub-passes to run, dependent on gate predicate. */
struct tree_opt_pass *sub;
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index 157c600..fe42309 100644
--- a/gcc/tree-profile.c
+++ b/gcc/tree-profile.c
@@ -234,7 +234,7 @@ do_tree_profiling (void)
return false;
}
-static void
+static unsigned int
tree_profiling (void)
{
branch_prob ();
@@ -247,6 +247,7 @@ tree_profiling (void)
easy to adjust it, if and when there is some. */
free_dominance_info (CDI_DOMINATORS);
free_dominance_info (CDI_POST_DOMINATORS);
+ return 0;
}
struct tree_opt_pass pass_tree_profile =
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index 462d78f..998b6aa 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -2671,7 +2671,7 @@ expression_expensive_p (tree expr)
We only consider SSA names defined by phi nodes; rest is left to the
ordinary constant propagation pass. */
-void
+unsigned int
scev_const_prop (void)
{
basic_block bb;
@@ -2681,7 +2681,7 @@ scev_const_prop (void)
unsigned i;
if (!current_loops)
- return;
+ return 0;
FOR_EACH_BB (bb)
{
@@ -2802,4 +2802,5 @@ scev_const_prop (void)
update_stmt (ass);
}
}
+ return 0;
}
diff --git a/gcc/tree-scalar-evolution.h b/gcc/tree-scalar-evolution.h
index f774954..4f947a8 100644
--- a/gcc/tree-scalar-evolution.h
+++ b/gcc/tree-scalar-evolution.h
@@ -32,7 +32,7 @@ extern tree analyze_scalar_evolution (struct loop *, tree);
extern tree instantiate_parameters (struct loop *, tree);
extern void gather_stats_on_scev_database (void);
extern void scev_analysis (void);
-void scev_const_prop (void);
+unsigned int scev_const_prop (void);
extern bool simple_iv (struct loop *, tree, tree, affine_iv *, bool);
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index a1828e8..0b594b9 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -2178,7 +2178,7 @@ sra_init_cache (void)
/* Main entry point. */
-static void
+static unsigned int
tree_sra (void)
{
/* Initialize local variables. */
@@ -2204,6 +2204,7 @@ tree_sra (void)
BITMAP_FREE (sra_type_decomp_cache);
BITMAP_FREE (sra_type_inst_cache);
obstack_free (&sra_obstack, NULL);
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index eacfed7..8f8fbfa 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -603,7 +603,7 @@ recalculate_used_alone (void)
max-aliased-vops}), alias sets are grouped to avoid severe
compile-time slow downs and memory consumption. See group_aliases. */
-static void
+static unsigned int
compute_may_aliases (void)
{
struct alias_info *ai;
@@ -676,6 +676,7 @@ compute_may_aliases (void)
}
recalculate_used_alone ();
updating_used_alone = false;
+ return 0;
}
@@ -3125,7 +3126,7 @@ find_used_portions (tree *tp, int *walk_subtrees, void *lhs_p)
/* Create structure field variables for structures used in this function. */
-static void
+static unsigned int
create_structure_vars (void)
{
basic_block bb;
@@ -3158,7 +3159,7 @@ create_structure_vars (void)
}
htab_delete (used_portions);
VEC_free (tree, heap, varvec);
-
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 6b724a1..ae441fa 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -1378,10 +1378,11 @@ execute_ssa_ccp (bool store_ccp)
}
-static void
+static unsigned int
do_ssa_ccp (void)
{
execute_ssa_ccp (false);
+ return 0;
}
@@ -1412,11 +1413,12 @@ struct tree_opt_pass pass_ccp =
};
-static void
+static unsigned int
do_ssa_store_ccp (void)
{
/* If STORE-CCP is not enabled, we just run regular CCP. */
execute_ssa_ccp (flag_tree_store_ccp != 0);
+ return 0;
}
static bool
@@ -2469,7 +2471,7 @@ convert_to_gimple_builtin (block_stmt_iterator *si_p, tree expr)
/* A simple pass that attempts to fold all builtin functions. This pass
is run after we've propagated as many constants as we can. */
-static void
+static unsigned int
execute_fold_all_builtins (void)
{
bool cfg_changed = false;
@@ -2561,6 +2563,7 @@ execute_fold_all_builtins (void)
/* Delete unreachable blocks. */
if (cfg_changed)
cleanup_tree_cfg ();
+ return 0;
}
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index c716d11..e0e2a4f 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -1042,10 +1042,11 @@ gate_copy_prop (void)
return flag_tree_copy_prop != 0;
}
-static void
+static unsigned int
do_copy_prop (void)
{
execute_copy_prop (false, false);
+ return 0;
}
struct tree_opt_pass pass_copy_prop =
@@ -1070,10 +1071,11 @@ struct tree_opt_pass pass_copy_prop =
};
-static void
+static unsigned int
do_phi_only_copy_prop (void)
{
execute_copy_prop (false, true);
+ return 0;
}
struct tree_opt_pass pass_phi_only_copy_prop =
@@ -1108,11 +1110,12 @@ gate_store_copy_prop (void)
return flag_tree_store_copy_prop != 0 || flag_tree_copy_prop != 0;
}
-static void
+static unsigned int
store_copy_prop (void)
{
/* If STORE-COPY-PROP is not enabled, we just run regular COPY-PROP. */
execute_copy_prop (flag_tree_store_copy_prop != 0, false);
+ return 0;
}
struct tree_opt_pass pass_store_copy_prop =
diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c
index 7861a76..45f6567 100644
--- a/gcc/tree-ssa-copyrename.c
+++ b/gcc/tree-ssa-copyrename.c
@@ -292,7 +292,7 @@ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug)
then cause the SSA->normal pass to attempt to coalesce them all to the same
variable. */
-static void
+static unsigned int
rename_ssa_copies (void)
{
var_map map;
@@ -374,6 +374,7 @@ rename_ssa_copies (void)
}
delete_var_map (map);
+ return 0;
}
/* Return true if copy rename is to be performed. */
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index c8a30a4..15c2ee4 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -926,24 +926,27 @@ perform_tree_ssa_dce (bool aggressive)
}
/* Pass entry points. */
-static void
+static unsigned int
tree_ssa_dce (void)
{
perform_tree_ssa_dce (/*aggressive=*/false);
+ return 0;
}
-static void
+static unsigned int
tree_ssa_dce_loop (void)
{
perform_tree_ssa_dce (/*aggressive=*/false);
free_numbers_of_iterations_estimates (current_loops);
scev_reset ();
+ return 0;
}
-static void
+static unsigned int
tree_ssa_cd_dce (void)
{
perform_tree_ssa_dce (/*aggressive=*/optimize >= 2);
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index e003b65..5a28e78 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -235,7 +235,7 @@ free_all_edge_infos (void)
every new symbol exposed, its corresponding bit will be set in
VARS_TO_RENAME. */
-static void
+static unsigned int
tree_ssa_dominator_optimize (void)
{
struct dom_walk_data walk_data;
@@ -358,6 +358,7 @@ tree_ssa_dominator_optimize (void)
VEC_free (tree, heap, avail_exprs_stack);
VEC_free (tree, heap, const_and_copies_stack);
VEC_free (tree, heap, stmts_to_rescan);
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 9bfce5a..17ed129 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -91,7 +91,7 @@ struct address_walk_data
};
static bool gate_dse (void);
-static void tree_ssa_dse (void);
+static unsigned int tree_ssa_dse (void);
static void dse_initialize_block_local_data (struct dom_walk_data *,
basic_block,
bool);
@@ -398,7 +398,7 @@ dse_finalize_block (struct dom_walk_data *walk_data,
}
}
-static void
+static unsigned int
tree_ssa_dse (void)
{
struct dom_walk_data walk_data;
@@ -455,6 +455,7 @@ tree_ssa_dse (void)
/* For now, just wipe the post-dominator information. */
free_dominance_info (CDI_POST_DOMINATORS);
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 1fd9008..d91ab45 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -927,7 +927,7 @@ simplify_switch_expr (tree stmt)
/* Main entry point for the forward propagation optimizer. */
-static void
+static unsigned int
tree_ssa_forward_propagate_single_use_vars (void)
{
basic_block bb;
@@ -991,6 +991,7 @@ tree_ssa_forward_propagate_single_use_vars (void)
if (cfg_changed)
cleanup_tree_cfg ();
+ return 0;
}
diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c
index 1ce95bd..1663807 100644
--- a/gcc/tree-ssa-loop-ch.c
+++ b/gcc/tree-ssa-loop-ch.c
@@ -120,7 +120,7 @@ do_while_loop_p (struct loop *loop)
of the loop. This is beneficial since it increases efficiency of
code motion optimizations. It also saves one jump on entry to the loop. */
-static void
+static unsigned int
copy_loop_headers (void)
{
struct loops *loops;
@@ -135,7 +135,7 @@ copy_loop_headers (void)
loops = loop_optimizer_init (LOOPS_HAVE_PREHEADERS
| LOOPS_HAVE_SIMPLE_LATCHES);
if (!loops)
- return;
+ return 0;
#ifdef ENABLE_CHECKING
verify_loop_structure (loops);
@@ -214,6 +214,7 @@ copy_loop_headers (void)
free (copied_bbs);
loop_optimizer_finalize (loops);
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index 8657dac..ee1b9b3 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -87,14 +87,15 @@ struct tree_opt_pass pass_tree_loop =
/* Loop optimizer initialization. */
-static void
+static unsigned int
tree_ssa_loop_init (void)
{
current_loops = tree_loop_optimizer_init ();
if (!current_loops)
- return;
+ return 0;
scev_initialize (current_loops);
+ return 0;
}
struct tree_opt_pass pass_tree_loop_init =
@@ -116,13 +117,14 @@ struct tree_opt_pass pass_tree_loop_init =
/* Loop invariant motion pass. */
-static void
+static unsigned int
tree_ssa_loop_im (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_lim (current_loops);
+ return 0;
}
static bool
@@ -150,13 +152,14 @@ struct tree_opt_pass pass_lim =
/* Loop unswitching pass. */
-static void
+static unsigned int
tree_ssa_loop_unswitch (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_unswitch_loops (current_loops);
+ return 0;
}
static bool
@@ -184,10 +187,11 @@ struct tree_opt_pass pass_tree_unswitch =
/* Loop autovectorization. */
-static void
+static unsigned int
tree_vectorize (void)
{
vectorize_loops (current_loops);
+ return 0;
}
static bool
@@ -215,13 +219,14 @@ struct tree_opt_pass pass_vectorize =
/* Loop nest optimizations. */
-static void
+static unsigned int
tree_linear_transform (void)
{
if (!current_loops)
- return;
+ return 0;
linear_transform_loops (current_loops);
+ return 0;
}
static bool
@@ -249,13 +254,14 @@ struct tree_opt_pass pass_linear_transform =
/* Canonical induction variable creation pass. */
-static void
+static unsigned int
tree_ssa_loop_ivcanon (void)
{
if (!current_loops)
- return;
+ return 0;
canonicalize_induction_variables (current_loops);
+ return 0;
}
static bool
@@ -310,13 +316,14 @@ struct tree_opt_pass pass_scev_cprop =
/* Remove empty loops. */
-static void
+static unsigned int
tree_ssa_empty_loop (void)
{
if (!current_loops)
- return;
+ return 0;
remove_empty_loops (current_loops);
+ return 0;
}
struct tree_opt_pass pass_empty_loop =
@@ -338,14 +345,15 @@ struct tree_opt_pass pass_empty_loop =
/* Record bounds on numbers of iterations of loops. */
-static void
+static unsigned int
tree_ssa_loop_bounds (void)
{
if (!current_loops)
- return;
+ return 0;
estimate_numbers_of_iterations (current_loops);
scev_reset ();
+ return 0;
}
struct tree_opt_pass pass_record_bounds =
@@ -367,16 +375,17 @@ struct tree_opt_pass pass_record_bounds =
/* Complete unrolling of loops. */
-static void
+static unsigned int
tree_complete_unroll (void)
{
if (!current_loops)
- return;
+ return 0;
tree_unroll_loops_completely (current_loops,
flag_unroll_loops
|| flag_peel_loops
|| optimize >= 3);
+ return 0;
}
static bool
@@ -404,13 +413,14 @@ struct tree_opt_pass pass_complete_unroll =
/* Prefetching. */
-static void
+static unsigned int
tree_ssa_loop_prefetch (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_prefetch_arrays (current_loops);
+ return 0;
}
static bool
@@ -438,13 +448,14 @@ struct tree_opt_pass pass_loop_prefetch =
/* Induction variable optimizations. */
-static void
+static unsigned int
tree_ssa_loop_ivopts (void)
{
if (!current_loops)
- return;
+ return 0;
tree_ssa_iv_optimize (current_loops);
+ return 0;
}
static bool
@@ -474,16 +485,17 @@ struct tree_opt_pass pass_iv_optimize =
/* Loop optimizer finalization. */
-static void
+static unsigned int
tree_ssa_loop_done (void)
{
if (!current_loops)
- return;
+ return 0;
free_numbers_of_iterations_estimates (current_loops);
scev_finalize ();
loop_optimizer_finalize (current_loops);
current_loops = NULL;
+ return 0;
}
struct tree_opt_pass pass_tree_loop_done =
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 825c0bd..609c408 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -447,7 +447,7 @@ gate_cse_reciprocals (void)
/* Go through all the floating-point SSA_NAMEs, and call
execute_cse_reciprocals_1 on each of them. */
-static void
+static unsigned int
execute_cse_reciprocals (void)
{
basic_block bb;
@@ -496,6 +496,7 @@ execute_cse_reciprocals (void)
free_dominance_info (CDI_DOMINATORS | CDI_POST_DOMINATORS);
free_alloc_pool (occ_pool);
+ return 0;
}
struct tree_opt_pass pass_cse_reciprocals =
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 2b772db..ff96065 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -35,7 +35,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "tree-dump.h"
#include "langhooks.h"
-static void tree_ssa_phiopt (void);
+static unsigned int tree_ssa_phiopt (void);
static bool conditional_replacement (basic_block, basic_block,
edge, edge, tree, tree, tree);
static bool value_replacement (basic_block, basic_block,
@@ -133,7 +133,7 @@ static basic_block *blocks_in_phiopt_order (void);
A similar transformation is done for MAX_EXPR. */
-static void
+static unsigned int
tree_ssa_phiopt (void)
{
basic_block bb;
@@ -237,6 +237,7 @@ tree_ssa_phiopt (void)
}
free (bb_order);
+ return 0;
}
/* Returns the list of basic blocks in the function in an order that guarantees
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 95df388..305ee3e 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -3803,10 +3803,11 @@ execute_pre (bool do_fre)
/* Gate and execute functions for PRE. */
-static void
+static unsigned int
do_pre (void)
{
execute_pre (false);
+ return 0;
}
static bool
@@ -3837,10 +3838,11 @@ struct tree_opt_pass pass_pre =
/* Gate and execute functions for FRE. */
-static void
+static unsigned int
execute_fre (void)
{
execute_pre (true);
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index c36293f..4d298fe 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -1489,7 +1489,7 @@ fini_reassoc (void)
/* Gate and execute functions for Reassociation. */
-static void
+static unsigned int
execute_reassoc (void)
{
init_reassoc ();
@@ -1498,6 +1498,7 @@ execute_reassoc (void)
repropagate_negates ();
fini_reassoc ();
+ return 0;
}
struct tree_opt_pass pass_reassoc =
diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c
index 7e4e142..4db67c5 100644
--- a/gcc/tree-ssa-sink.c
+++ b/gcc/tree-ssa-sink.c
@@ -537,10 +537,11 @@ execute_sink_code (void)
/* Gate and execute functions for PRE. */
-static void
+static unsigned int
do_sink (void)
{
execute_sink_code ();
+ return 0;
}
static bool
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 79d4f90..a84a32c 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -4552,7 +4552,7 @@ gate_ipa_pta (void)
}
/* Execute the driver for IPA PTA. */
-static void
+static unsigned int
ipa_pta_execute (void)
{
struct cgraph_node *node;
@@ -4647,6 +4647,7 @@ ipa_pta_execute (void)
in_ipa_mode = 0;
delete_alias_heapvars ();
delete_points_to_sets ();
+ return 0;
}
struct tree_opt_pass pass_ipa_pta =
diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c
index c79b120..2271613 100644
--- a/gcc/tree-ssa-uncprop.c
+++ b/gcc/tree-ssa-uncprop.c
@@ -382,7 +382,7 @@ record_equiv (tree value, tree equivalence)
/* Main driver for un-cprop. */
-static void
+static unsigned int
tree_ssa_uncprop (void)
{
struct dom_walk_data walk_data;
@@ -441,7 +441,7 @@ tree_ssa_uncprop (void)
}
}
}
-
+ return 0;
}
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index 6e40e12..2dab5c6 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -1196,7 +1196,7 @@ warn_uninitialized_phi (tree phi)
}
}
-static void
+static unsigned int
execute_early_warn_uninitialized (void)
{
block_stmt_iterator bsi;
@@ -1209,9 +1209,10 @@ execute_early_warn_uninitialized (void)
walk_tree (bsi_stmt_ptr (bsi), warn_uninitialized_var,
context, NULL);
}
+ return 0;
}
-static void
+static unsigned int
execute_late_warn_uninitialized (void)
{
basic_block bb;
@@ -1225,6 +1226,7 @@ execute_late_warn_uninitialized (void)
FOR_EACH_BB (bb)
for (phi = phi_nodes (bb); phi; phi = PHI_CHAIN (phi))
warn_uninitialized_phi (phi);
+ return 0;
}
static bool
diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c
index b49526d..4a67bc8 100644
--- a/gcc/tree-stdarg.c
+++ b/gcc/tree-stdarg.c
@@ -603,7 +603,7 @@ gate_optimize_stdarg (void)
/* Entry point to the stdarg optimization pass. */
-static void
+static unsigned int
execute_optimize_stdarg (void)
{
basic_block bb;
@@ -903,6 +903,7 @@ finish:
fprintf (dump_file, "%d", cfun->va_list_fpr_size);
fputs (" FPR units.\n", dump_file);
}
+ return 0;
}
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index b0f74ff..bdc5c95 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -994,10 +994,11 @@ tree_optimize_tail_calls_1 (bool opt_tailcalls)
add_virtual_phis ();
}
-static void
+static unsigned int
execute_tail_recursion (void)
{
tree_optimize_tail_calls_1 (false);
+ return 0;
}
static bool
@@ -1006,10 +1007,11 @@ gate_tail_calls (void)
return flag_optimize_sibling_calls != 0;
}
-static void
+static unsigned int
execute_tail_calls (void)
{
tree_optimize_tail_calls_1 (true);
+ return 0;
}
struct tree_opt_pass pass_tail_recursion =
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index dd58cb9..b1e567a 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -469,7 +469,7 @@ gate_expand_vector_operations (void)
return flag_tree_vectorize != 0;
}
-static void
+static unsigned int
expand_vector_operations (void)
{
block_stmt_iterator bsi;
@@ -483,6 +483,7 @@ expand_vector_operations (void)
update_stmt_if_modified (bsi_stmt (bsi));
}
}
+ return 0;
}
struct tree_opt_pass pass_lower_vector =
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 099e85a..d8ff9fd 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -4518,7 +4518,7 @@ vrp_finalize (void)
DON'T KNOW. In the future, it may be worthwhile to propagate
probabilities to aid branch prediction. */
-static void
+static unsigned int
execute_vrp (void)
{
insert_range_assertions ();
@@ -4551,7 +4551,7 @@ execute_vrp (void)
update_ssa (TODO_update_ssa);
finalize_jump_threads ();
-
+ return 0;
}
static bool
diff --git a/gcc/tree.h b/gcc/tree.h
index 6b26a85..be7f5d8 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -4284,7 +4284,7 @@ extern tree find_compatible_field (tree, tree);
extern void expand_main_function (void);
extern void init_dummy_function_start (void);
extern void expand_dummy_function_end (void);
-extern void init_function_for_compilation (void);
+extern unsigned int init_function_for_compilation (void);
extern void allocate_struct_function (tree);
extern void init_function_start (tree);
extern bool use_register_for_decl (tree);
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 2d73def..7e910d6 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -2676,11 +2676,11 @@ vt_finalize (void)
/* The entry point to variable tracking pass. */
-void
+unsigned int
variable_tracking_main (void)
{
if (n_basic_blocks > 500 && n_edges / n_basic_blocks >= 20)
- return;
+ return 0;
mark_dfs_back_edges ();
vt_initialize ();
@@ -2689,7 +2689,7 @@ variable_tracking_main (void)
if (!vt_stack_adjustments ())
{
vt_finalize ();
- return;
+ return 0;
}
}
@@ -2703,6 +2703,7 @@ variable_tracking_main (void)
}
vt_finalize ();
+ return 0;
}
static bool
diff --git a/gcc/web.c b/gcc/web.c
index 164fd17..b729be7b 100644
--- a/gcc/web.c
+++ b/gcc/web.c
@@ -285,13 +285,14 @@ gate_handle_web (void)
return (optimize > 0 && flag_web);
}
-static void
+static unsigned int
rest_of_handle_web (void)
{
web_main ();
delete_trivially_dead_insns (get_insns (), max_reg_num ());
cleanup_cfg (CLEANUP_EXPENSIVE);
reg_scan (get_insns (), max_reg_num ());
+ return 0;
}
struct tree_opt_pass pass_web =