diff options
author | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-15 12:46:07 +0000 |
---|---|---|
committer | bonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-06-15 12:46:07 +0000 |
commit | d2010b0467ba325c1e8c52b20f776830c191b165 (patch) | |
tree | af8f6b819cf8320c57100f0ded0f5d0bdbae5c96 /gcc/passes.c | |
parent | f3e1a7275a876f9e90ea46dc57fa7352f39cb892 (diff) | |
download | gcc-d2010b0467ba325c1e8c52b20f776830c191b165.tar.gz |
gcc/ChangeLog:
2004-06-15 Paolo Bonzini <bonzini@gnu.org>
* 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 <bonzini@gnu.org>
* 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 <bonzini@gnu.org>
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83181 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/passes.c')
-rw-r--r-- | gcc/passes.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/gcc/passes.c b/gcc/passes.c index d3114de937e..fb976a8015a 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); |