From 096f22f42494fad3990d6a2d74a9844dd6af977b Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 15 Jun 2004 12:46:07 +0000 Subject: function.h (struct function): Remove cannot_inline field. gcc/ChangeLog: 2004-06-15 Paolo Bonzini * function.h (struct function): Remove cannot_inline field. (current_function_cannot_inline): Remove. * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. Simplify conditionals to ignore warn_return_type. * tree-optimize.c (tree_rest_of_compilation): Do not reset DECL_DEFER_OUTPUT. * objc/objc-act.c (build_module_descriptor, finish_method_def): Do not set current_function_cannot_inline. gcc/java/ChangeLog: 2004-06-15 Paolo Bonzini * class.c (emit_register_classes): Make the function uninlinable, do not set current_function_cannot_inline. * resource.c (write_resource_constructor): Do not reset flag_inline_functions around rest_of_compilation. gcc/cp/ChangeLog: 2004-06-15 Paolo Bonzini * cp-tree.h (struct language_function): Remove cannot_inline. * decl.c (save_function_data): cannot_inline is no more. (cxx_push_function_context): Likewise. * decl2.c (start_objects, start_static_storage_duration_function): Reset DECL_INLINE, set DECL_UNINLINABLE. From-SVN: r83181 --- gcc/passes.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'gcc/passes.c') diff --git a/gcc/passes.c b/gcc/passes.c index d3114de..fb976a8 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -1359,6 +1359,10 @@ rest_of_compilation (tree decl) timevar_push (TV_REST_OF_COMPILATION); + /* There's no need to defer outputting this function any more; we + know we want to output it. */ + DECL_DEFER_OUTPUT (current_function_decl) = 0; + /* Register rtl specific functions for cfg. */ rtl_register_cfg_hooks (); @@ -1425,8 +1429,7 @@ rest_of_compilation (tree decl) /* Initialize some variables used by the optimizers. */ init_function_for_compilation (); - if (! DECL_DEFER_OUTPUT (decl)) - TREE_ASM_WRITTEN (decl) = 1; + TREE_ASM_WRITTEN (decl) = 1; /* Now that integrate will no longer see our rtl, we need not distinguish between the return value of this function and the @@ -1438,10 +1441,8 @@ rest_of_compilation (tree decl) purge_hard_subreg_sets (get_insns ()); /* Early return if there were errors. We can run afoul of our - consistency checks, and there's not really much point in fixing them. - Don't return yet if -Wreturn-type; we need to do cleanup_cfg. */ - if (((rtl_dump_and_exit || flag_syntax_only) && !warn_return_type) - || errorcount || sorrycount) + consistency checks, and there's not really much point in fixing them. */ + if (rtl_dump_and_exit || flag_syntax_only || errorcount || sorrycount) goto exit_rest_of_compilation; timevar_push (TV_JUMP); @@ -1534,15 +1535,8 @@ rest_of_compilation (tree decl) purge_line_number_notes (insns); - timevar_pop (TV_JUMP); close_dump_file (DFI_jump, print_rtl, insns); - /* Now is when we stop if -fsyntax-only and -Wreturn-type. */ - if (rtl_dump_and_exit || flag_syntax_only || DECL_DEFER_OUTPUT (decl)) - goto exit_rest_of_compilation; - - timevar_push (TV_JUMP); - if (optimize) cleanup_cfg (CLEANUP_EXPENSIVE | CLEANUP_PRE_LOOP); -- cgit v1.1