tree-vrp.c (execute_vrp): Return value.
authorDaniel Berlin <dberlin@dberlin.org>
Thu, 2 Mar 2006 19:00:11 +0000 (19:00 +0000)
committerDaniel Berlin <dberlin@gcc.gnu.org>
Thu, 2 Mar 2006 19:00:11 +0000 (19:00 +0000)
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

93 files changed:
gcc/ChangeLog
gcc/alias.c
gcc/basic-block.h
gcc/bb-reorder.c
gcc/bt-load.c
gcc/cfgcleanup.c
gcc/cfgexpand.c
gcc/cfglayout.c
gcc/cfglayout.h
gcc/cfgrtl.c
gcc/cgraphunit.c
gcc/combine.c
gcc/cse.c
gcc/emit-rtl.c
gcc/except.c
gcc/except.h
gcc/final.c
gcc/flow.c
gcc/function.c
gcc/gcse.c
gcc/gimple-low.c
gcc/global.c
gcc/ifcvt.c
gcc/integrate.c
gcc/integrate.h
gcc/ipa-cp.c
gcc/ipa-inline.c
gcc/ipa-prop.h
gcc/ipa-pure-const.c
gcc/ipa-reference.c
gcc/ipa-type-escape.c
gcc/jump.c
gcc/local-alloc.c
gcc/loop-init.c
gcc/mode-switching.c
gcc/modulo-sched.c
gcc/omp-low.c
gcc/passes.c
gcc/postreload-gcse.c
gcc/postreload.c
gcc/predict.c
gcc/profile.c
gcc/recog.c
gcc/reg-stack.c
gcc/regmove.c
gcc/regrename.c
gcc/reorg.c
gcc/rtl-factoring.c
gcc/rtl.h
gcc/sched-rgn.c
gcc/tracer.c
gcc/tree-cfg.c
gcc/tree-cfgcleanup.c
gcc/tree-complex.c
gcc/tree-dfa.c
gcc/tree-eh.c
gcc/tree-if-conv.c
gcc/tree-into-ssa.c
gcc/tree-mudflap.c
gcc/tree-nrv.c
gcc/tree-object-size.c
gcc/tree-optimize.c
gcc/tree-outof-ssa.c
gcc/tree-pass.h
gcc/tree-profile.c
gcc/tree-scalar-evolution.c
gcc/tree-scalar-evolution.h
gcc/tree-sra.c
gcc/tree-ssa-alias.c
gcc/tree-ssa-ccp.c
gcc/tree-ssa-copy.c
gcc/tree-ssa-copyrename.c
gcc/tree-ssa-dce.c
gcc/tree-ssa-dom.c
gcc/tree-ssa-dse.c
gcc/tree-ssa-forwprop.c
gcc/tree-ssa-loop-ch.c
gcc/tree-ssa-loop.c
gcc/tree-ssa-math-opts.c
gcc/tree-ssa-phiopt.c
gcc/tree-ssa-pre.c
gcc/tree-ssa-reassoc.c
gcc/tree-ssa-sink.c
gcc/tree-ssa-structalias.c
gcc/tree-ssa-uncprop.c
gcc/tree-ssa.c
gcc/tree-stdarg.c
gcc/tree-tailcall.c
gcc/tree-vect-generic.c
gcc/tree-vrp.c
gcc/tree.h
gcc/var-tracking.c
gcc/web.c

index 066b933eb7b5f1f5ee38b5b811c6386cbf255e40..7967d68fd04630845ea6d82378994e787a3ff0ea 100644 (file)
@@ -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
index 5e152855a81f20325addadb5f7e40324892e12de..d66d0c7e586cf30f0aa14ea8e9e72a47ee2e096a 100644 (file)
@@ -2645,7 +2645,7 @@ end_alias_analysis (void)
 \f
 /* 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 =
index 2a2e8de30dc421bff7cc1c8a09eb0125d58c21a2..e8e08a011be43b2a9bf14a17c29c85a9773de0c5 100644 (file)
@@ -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);
index 640907081e75c2298099b8e9ee9d299749b79020..412f78a24da80eaa586d78253ef6c0151c6769fd 100644 (file)
@@ -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 =
index a0a89bc2fbf8126845e10d659e5c9993167f75cf..853155526f7dafb257f7230d7bfb2c840918a723 100644 (file)
@@ -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 =
index 0e67415e81c81f3f5e04e27d246559b731aa82d3..2dd4ff2bbcf9ce45c248b9a0eccd21ddb2d0e837 100644 (file)
@@ -2268,13 +2268,14 @@ cleanup_cfg (int mode)
   return changed;
 }
 \f
-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;
 }
 
 
index c0bf209d9d8f321b52990b2d210e5d18495e4685..65ebdb71fcc7e66048f095bec83d7b11f9e5d497 100644 (file)
@@ -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 =
index 265afd73f93c4927f5354b7e001a6e657599cf47..bcdeb96c1309a95667a0289378118ca5b3f353d5 100644 (file)
@@ -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 =
index 52bd4e9ee140e33744572c3153af137a4b12e2b7..4bc1e6759c8d98c029117d62ac6f2350ac813ee5 100644 (file)
@@ -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 *,
index d6a576d349528bb399524b7f109802e87c1ccec1..f8de04bb0581d1bd327004e55c903e9234ae11b6 100644 (file)
@@ -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 =
index f0081b68da4e7f3a5cd25e9b4e170f8da0d8ba4b..f6540c02b02e492f1303dcdff21aa65ce948ff71 100644 (file)
@@ -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 =
index 32d3f67df4fc2d5c6f38be9ec9f3fbfbd50a718a..b7199addbd4fc92688e950463ed2b710b405a441 100644 (file)
@@ -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 =
index 7d6f46b0a3563ade022c2956357a5fbd54c56895..681e94160213345fcda2eefe1238884f9beb97af 100644 (file)
--- 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;
 }
 
 
index 7dfdd3a0163cef7f9bd93ae66ebb2697139f3b6f..06721c6c4677f82c3c95a47fd294c3fe45eb770b 100644 (file)
@@ -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 =
index fba9918b1bb978077dcd1ea7f4d9d012ca05aef3..90a75adeb7dfffff1d685124ce468018040f3abc 100644 (file)
@@ -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 =
index 2b2115a09da20bcb91c24b471381ba7a0ecba0f6..46914d4205ce3bdf64ef4e774c62694e24ae9f8f 100644 (file)
@@ -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);
index c145045b133f16d3e5cb149f61c8d9849d4adb8d..04596646b3eda6098919e6369ff7f5f445e4bf5a 100644 (file)
@@ -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)
 }
 \f
 /* 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 =
index 2e78674cf3e709e6a2214d3b62453b696318727b..ff03ca6fc2afa3e99cab6a0e95c3a64f8459a2fa 100644 (file)
@@ -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 =
index 00a673ac4bd801264f171e3bbedad74b7641fbef..9283b50d8418b2444ccf69eefded3ca233c5a118 100644 (file)
@@ -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)
 }
 \f
 
-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 =
index 4270737377980db321af495b7350d67050d7df7a..a3ec8c0cbedf26203bfb20755aea5ea48450e490 100644 (file)
@@ -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 =
index 69f9894a747f6356212dce7ee2dcb154d0eece60..6de2b8f185550bf294a0e55efaf7093e6076d525 100644 (file)
@@ -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;
 }
 
 
index 4cead231eeced9f0ac271cb222983b516e5d19e1..0642a708d04966a93ef7f8fbf7ebc9caa776ac3d 100644 (file)
@@ -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 =
index 5d156a6caeb69f7c0fd18b5d729794a7d314cf5a..23a9b3c7c36ae9e5d969650ee65f61f53bd3ed33 100644 (file)
@@ -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;
 }
 
 
index 9ac14a0d7098145549ecd5ff274004eef42967f1..98769354ddff8d8ff7d2d63858c2956ce225617f 100644 (file)
@@ -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 =
index 7987627e1dc01626f70973e7c829220082aa4846..2c9009811d3209c6f12ec051fd8a5df2b71e353e 100644 (file)
@@ -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
index 23e8de80a2ef69100cf93ee45de61d94fd188398..898d95e82124ed73e50a61af4dbad3a31f8772c1 100644 (file)
@@ -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.  */
index 2cb6b4207f2721719e4d9b249c343f230190a5d3..9ba2f109b3c36d1f2288168f6e00d140e36b6063 100644 (file)
@@ -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.  */
index 82d0ca55711fdd13ee9710ad19788e3732fe8023..b5c5f2deaa0a8582ff4b525bfbeeeea9f09fa50b 100644 (file)
@@ -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 */
index 1026d9b3130df9598a00d976df64a2cd93f45020..079af5e12e2e7e8b42088c613b2f90045ec07011 100644 (file)
@@ -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
index fe2f807d3e8b9f4d05993ddef1b3d3ca6b4548ab..077aa18d72377ae476a7c919105d8381a5e032e1 100644 (file)
@@ -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;
 }
 
 
index 37a61e43cb45852a1ae8871f2f6da44ea8033b37..b2ee148268ed0b5c5dbafa83228e7ccb3f2d5c52 100644 (file)
@@ -1670,7 +1670,7 @@ close_addressof_down (int uid)
 \f
 /* 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
index 05780b22c7f6bd258702d8f69d7400cbd26b538c..38d1146ff2260713ff8319ce6a87dc0b203ef459 100644 (file)
@@ -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 =
index 820e0b654bf5c2dd7134d07c4d84f66f589eee59..f751c0fc31f3d21cfb3be237bd46b21ddfcfe37b 100644 (file)
@@ -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 =
index bf13fd0948d3847b8d29316ffd89386e2031efb0..d2c63404516a10e61602c6f38906559bf971c9b0 100644 (file)
@@ -164,7 +164,7 @@ struct tree_opt_pass pass_loop2 =
 
 \f
 /* 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 =
 
 \f
 /* 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 =
index 26acab20f90069013cb5c2d66c505248e5d7a7aa..0d485dd0a1e0ba90d4d290f028b341072487b2ae 100644 (file)
@@ -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;
 }
 
 
index fdba7300da729e4b1e234997753595ae28b428bd..ee1a23641b5d513b518b465548bf6426fdf0bb75 100644 (file)
@@ -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 =
index 38d4224f4bf58607fc4f3f22b145f8d3f2b7cded..74be1e8e8ccca02247ef0425ccd08b841a9d98a5 100644 (file)
@@ -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)
 \f
 /* 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
index 0babab79bb8a188775dc655b5e54f2a6cf02bff3..c3702ef46dedfe610ad43933efb13850e41abb68 100644 (file)
@@ -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)
index faa4a4bfc1773f7e1dbff34b7a4c92d660b8f7f5..76b7b8c9ae0c54572f1138798c3f8beef5bb0390 100644 (file)
@@ -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 =
index fe2c7c832cd00b504b323a2ccaf8f7723a9560ce..5f4ae4f5b18249c62d892b177d8e856993021888 100644 (file)
@@ -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 =
index 8555982e072fc7e28d94384e746517a4691b5d80..c59e57b0c5ea5eab03d08cca43b57d8aa99de740 100644 (file)
@@ -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;
 }
 \f
 /* __builtin_expect dropped tokens into the insn stream describing expected
index d3bce07b8e9b7e44c2c7f924bcde82c279e12606..7fa9aad03ef81626c478ee0342cca8abf840d5ef 100644 (file)
@@ -1338,7 +1338,7 @@ tree_register_profile_hooks (void)
 
 \f
 /* 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 =
index e3cdfd799148e65cb7e9a2811db024b1dc0a9b88..fde429ccf9ca25f29bb615792a9f754325f8aa0c 100644 (file)
@@ -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;
 }
 \f
 #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 =
index eb7a3c127512424bbbe3c7a1080a16cc4a1d950d..73c132fda220c67932937764c2a9152897cc19f3 100644 (file)
@@ -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 =
index 1502c0858df9f627931e769ec6975b131597a5d4..31f1851a362a26034ca2966cf2ad493f8e91ad67 100644 (file)
@@ -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 =
index 8d2a286ccb72d7ce86ad50f3ed03a7c8be2d9f5e..49e18c4a7c22687fef95e8bbe7996f4ddc89ba49 100644 (file)
@@ -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 =
index 3376c00a63f1d29b15c2fc497a000aff88a647ac..7781d27606c22148bbf6c0cd531678d79756e0ec 100644 (file)
@@ -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 =
index 864836e07b92b60590385867712b515cbb669e2f..0cd1aaa4dbb41f9ccadd45ebb00ab775d4550d4f 100644 (file)
@@ -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 = {
index 9c088e92598d90875b91616d2669258485f0bed3..4ee188cadcef680d58e2f40d072755f841abfbb5 100644 (file)
--- 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,
index 3109786576f03298612861e8f9cca0e8dd26dfa7..62392403eb079357025f60aef52c446a98ac858d 100644 (file)
@@ -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 =
index fc4aed7c9c7dc6d2008cd142eac54b7381b5d20b..c7bd2bd1d6cd3c359ba2e3e1e4d55a54085c6edd 100644 (file)
@@ -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 =
index 60dacbd5fc8f9e0ff55acb3f6ff3c9ba4e8afd54..1c689e2037c3d1dab0f04c8dbed56935425a55ca 100644 (file)
@@ -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,
 \f
 /* 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 =
index dc0380aefc207dd53a9a22f27b9db582e474dfa9..57315d4c9806602bb288b2a9f235f5dd8134a77e 100644 (file)
@@ -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
index d37a82e701c0961a043fcb36b80488f7b4be7978..0529131301a16829aebd8ec8ae3978e55d4f9d22 100644 (file)
@@ -1480,7 +1480,7 @@ expand_complex_operations_1 (block_stmt_iterator *bsi)
 \f
 /* 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 =
 \f
 /* 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
index 9c2ddcfaf1f1d49a4d879f19779177a3f385097f..27f51de271d08fc819f1321b8a4db2a29ea6e768 100644 (file)
@@ -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 =
index 85379e63d8bb4318a8e95ebe63f6ecbf50fbc0e7..202073d3534ae932ef4c02e0b1127ef25f104116 100644 (file)
@@ -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 =
index 557dffbc42300f420ff46bc8e13cc8b45ff9499b..2a6102026efd5bd3f0d9834c2a839893fb8d25cd 100644 (file)
@@ -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
index 09a73b2b53c86e828aa9d00a9f796c93adfb6a3e..e0b6e6e16d2a0f1555dabd113688bcc9ea2375ee 100644 (file)
@@ -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;
 }
 
 
index 7384be0a6b7927579063bee16682f099adaf91c4..5a1444d1dbab093ebe7f6aa568fea6ea3bd0883d 100644 (file)
@@ -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
index 761e6a0ab46cf5f3cb065a96d2dc3a9e3e1b8fa8..54b964f258343a3d35fdc898884be4d30dfd7b2f 100644 (file)
@@ -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 = 
index fd7e427ff7d4003e84cba40622118e7e1cc67a39..068bacf46454b0f2f1893c1223fcb6aa3ce908a8 100644 (file)
@@ -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 =
index 34f2d4630772a1c9cab4209df023a041cfd495bd..fdf8ca1c46bb454f04179d31779868ba9fa1b38f 100644 (file)
@@ -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 =
index 558cedd22fc3237bd57f2131f3c36bedc660c3c8..f2841ae00e8c8f20ed315bdc6b9d68edf4eb0f11 100644 (file)
@@ -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;
 }
 
 
index 0a1a354386639710fc98d1391468fa7352efb6f7..a7c3f0062240467a5c3539431500155113ed3d08 100644 (file)
@@ -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;
index 157c600927e76f31b4eaf4cdfbf872f6df6efe48..fe42309ccc7d3e0f171ddce2e43ae07eabc80782 100644 (file)
@@ -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 = 
index 462d78fb39e4cccfac0ab159a025952b49c8d0c9..998b6aa459f00d358401442b52ae3c22cb3ca2b5 100644 (file)
@@ -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;
 }
index f7749545f9aa589cf2e5bb6f800ad7bb05ebb8a6..4f947a852f5bf945c118545074d7655eea84bb45 100644 (file)
@@ -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);
 
index a1828e8cda63edd0aa07d5b170e58ef986217eaf..0b594b945e2e465126e4a233851fa1402d537e56 100644 (file)
@@ -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
index eacfed7089189f3ad1c4343499c782e7f10718d9..8f8fbfa04b99c18e98a82fcb936e0f1f01bed6af 100644 (file)
@@ -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
index 6b724a1f25c9dd6e64270c7a09a0d0f914f5221f..ae441fa3cc4c756979ae50b0f5a4c943296e338d 100644 (file)
@@ -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;
 }
 
 
index c716d118029966677d8b706da3f9583225348dd0..e0e2a4faf1f8fccb92b4a4d51350593a73b77aff 100644 (file)
@@ -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 =
index 7861a76fb9c0cdf2db493fc0b125a770cd814f61..45f65678e1a01ee1b09c6eaec5908854e5b3ad2f 100644 (file)
@@ -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.  */
index c8a30a4024fb1f0b17753424537def826702aa46..15c2ee417ff389777e731ba407a02908f9356df0 100644 (file)
@@ -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
index e003b650c2f02dc88286ad0bcf1e6af85b21efbf..5a28e7830e2fcb1b44e27ac371e440d3fd60c192 100644 (file)
@@ -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
index 9bfce5a359938d0bd91b2452f4aa6336ee6604cb..17ed1297affb9b66abd2b6c13a6e2cafa287e465 100644 (file)
@@ -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
index 1fd90088d6392e3a2131b5fdc2369fb2bdc3d824..d91ab45b331a04696f9f938d32c2df2ff02b2881 100644 (file)
@@ -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;
 }
 
 
index 1ce95bd916720f495ee8314bae61f14244b45161..1663807127a51a0c2993ae9b1f91af818e86decd 100644 (file)
@@ -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
index 8657dac18820c879296f3a2a6a2ec8734fe0582b..ee1b9b374eaeca632a7eea1c92453a5541775c8b 100644 (file)
@@ -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 = 
index 825c0bdec614fd56b42d2bb6855f71251d1ec4de..609c408ed8cad492cc17b9ec2ba651781bd7f49c 100644 (file)
@@ -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 =
index 2b772db6873653476777b400ed56cab7a974e983..ff96065eb41d9ecd928c53ee5b15cc74040b592d 100644 (file)
@@ -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
index 95df38878956ddf59fbc850a4e5aad781b2dfdb8..305ee3e938b9dfc534788e4d1efdf0db212cf0c5 100644 (file)
@@ -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
index c36293f6937d7a3f0293314ab8897223f56bc10d..4d298fe9495da42188e2cfcdac026bd4db638edf 100644 (file)
@@ -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 =
index 7e4e14291aca997a1af12be26f01ff3790e86b2d..4db67c524cebbe75e09d45e61a941e193b470839 100644 (file)
@@ -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
index 79d4f90b1af9804023937400a42f74feea974e4a..a84a32c581b369f185b6293b90e8508db19c9e6e 100644 (file)
@@ -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 =
index c79b120ce3dc9098c250339813f8a64b98b84b20..2271613c3eb7f4a8dfae01735cc8b3074c51d39d 100644 (file)
@@ -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;
 }
 
 
index 6e40e129d7ff28f226313776f5a479e0852af648..2dab5c6835d9a7109566e2b321626a62c3486379 100644 (file)
@@ -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
index b49526d1848809b384fc26e1cad443ae3053c0c4..4a67bc850f6944abda255c0c18ed28320e307de7 100644 (file)
@@ -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;
 }
 
 
index b0f74ffbc706c35a39e2c93b39bf48b8a818b44b..bdc5c95de8849045fcd1ca2e7ae3df1409cc749a 100644 (file)
@@ -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 = 
index dd58cb914e83217e8bab9218fb3b9fa0609b8466..b1e567aa870de2409a44dbbdaa5330e2f14f2f6e 100644 (file)
@@ -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 = 
index 099e85aae067e9120445eb027012c3ebf764e5aa..d8ff9fd37100b22115ff67daf27f26f46e47121b 100644 (file)
@@ -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
index 6b26a85a5c625f1e6a030240b63f4cd36045eb9a..be7f5d85895b7677f34abd40eacf3f3d6c4026e9 100644 (file)
@@ -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);
index 2d73deff45c69c8abd0d3d63d4a6ec6a2cbb536b..7e910d6bcba4e3a3dd075993cfa1564278d912ea 100644 (file)
@@ -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;
 }
 \f
 static bool
index 164fd17223cef5034b93e830be5eef9c05a44b64..b729be7b9eee30eafa47cd64f52d43952288f717 100644 (file)
--- 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 =