diff options
author | Jan Hubicka <jh@suse.cz> | 2008-07-25 15:11:32 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2008-07-25 13:11:32 +0000 |
commit | 7e8b322aa09905a0362ec6c3c518c7aabfa045e0 (patch) | |
tree | 9b604148723313647c631665054f4f32b0f747d9 /gcc/cp | |
parent | 4a7bb85b7b613cf33e18c889234665a324283e71 (diff) | |
download | gcc-7e8b322aa09905a0362ec6c3c518c7aabfa045e0.zip gcc-7e8b322aa09905a0362ec6c3c518c7aabfa045e0.tar.gz gcc-7e8b322aa09905a0362ec6c3c518c7aabfa045e0.tar.bz2 |
cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
* cgraphbuild.c (record_reference): Drop non-unit-at-a-time code.
(build_cgraph_edges): Likewise.
* cgraph.c (cgraph_node): Do not update assembler hash.
(cgraph_remove_node): Drop non-unit-at-a-time code.
* tree-pass.h (pass_O0_always_inline): Remove.
* ipa-reference.c (gate_reference): Remove unit-at-a-time check.
* toplev.c (process_options): Flag unit-at-a-time does not imply
no section anchors.
* cgraphunit.c: Update comments.
(decide_is_function_needed): Drop non-unit-at-a-time mode.
(cgraph_assemble_pending_functions): Remove.
(cgraph_reset_node): Drop non-unit-at-a-time code.
(cgraph_finalize_function): Likewise.
(cgraph_analyze_function): Likewise.
(cgraph_finalize_compilation_unit): Likewise.
(cgraph_expand_function): Likewise.
(cgraph_optimize): Likesise.
(save_inline_function_body): Likewise.
* ipa-pure-const.c (gate_pure_const): Drop flag_unit_at_a_time check.
* tree-ssa-alias.c (maybe_be_aliased): Likewise.
* ipa-inline.c: Update comments.
(enum inlining_mode): remove INLINE_SPEED.
(cgraph_clone_inlined_nodes): Drop unit-at-a-time check.
(cgraph_mark_inline_edge): Likewise.
(try_inline): Likewise.
(cgraph_decide_inlining_incrementally): Likewise.
(cgraph_gate_inlining): Remove.
(cgraph_early_inlining): Remove flag_unit_at_a_time checks.
(cgraph_gate_early_inlining): Likewise.
(gate_inline_passes): Remove.
(pass_inline_parameters, pass_ipa_inline): Remove gates.
(cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
pass_O0_always_inline): Remove.
* c-pch.c (c_pch_matching): Remove -funit-at-a-time.
* dwarf2out.c (reference_to_unused): Remove flag_unit_at_a_time check.
* opts.c (no_unit_at_a_time_default): Remove.
(decode_options): Remove flag_unit_at_a_time reset and warning.
* opts.h (no_unit_at_a_time_default): Remove.
* c-decl.c (diagnose_mismatched_decls): Do not require inline keyword
early in GNU dialect.
(merge_decls): Update comment; drop unit-at-a-time check.
(finish_decl): Likewise.
(grok_declaration): Remove flag_inline_trees code.
(finish_functions): Return on function returning non-void on all
statics.
* ipa-tye-escape.c (gate_type_escape_vars): Remove.
* cfgexpand.c (expand_one_static_var): Remove.
(expand_one_var): Remove expand_one_static_var call.
(expand_used_vars_for_block): Remove flag_unit_a_time check.
* c-opts.c (c_common_post_options): Remove flag_inline_trees code
and flag_unit_at_a-time compatibility checks.
* varasm.c (assemble_alias): Remove flag_unit_at_a_time check.
* tree-inline.c (flag_inline_trees): Remove.
(inlinable_function_p): Don't check it.
(expand_call_inline): Remove non-unit-at-a-time code.
* tree-inline.h (flag_inline_trees): Remove.
* tree-optimize.c (execute_early_local_optimizations): Remove
unit-at-a-time checks.
(tree_rest_of_compilation): Likewise.
* combine.c (setup_incoming_promotions): Likewise.
* tree-profile.c (tree_gen_ic_func_profiler): Likewise.
* tree-ssa-structalias.c (delete_points_to_sets): Likewise.
* passes.c (pass_inline_parameters): Update comments; remove
O0_alwaysinline pass.
(execute_one_ipa_transform_pass): Do not reset in_gimple_form.
(execute_one_pass): Likewise.
* i386.c (ix86_function_regparm): Remove unit-at-a-time check.
(ix86_function_sseregparm): Likewise.
* arm.c (arm_function_in_section_p): Likewise.
* bfin.c (bfin_load_pic_reg, bfin_function_ok_for_sibcall): Likewise.
* varpool.c: Update comments.
(decide_is_variable_needed): Remove unit-at-a-time checks.
(varpool_finalize_decl): Likewise.
* ada/utils.c (end_subprog_body): Remove inline trees check.
* ada/misc.c (gnat_post_options): Do not set flag_inline_trees.
* fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
* gcc.dg/winline-4.c: Remove.
* gcc.dg/pch/valid-3.hs: Remove.
* gcc.dg/pch/valid-3.c: Remove.
* g++.old-deja/g++.brendan/crash52.C: Accept returning void warning
* g++.old-deja/g++.jason/report.C: Likewise.
* testsuite/g++.dg/warn/pr23075.C: We get returning void warning
instead of control flow warning.
* cp/decl.c (duplicate_decls): Update comment and unit-at-a-time.
(grogfndecl): Drop flag_inline_trees code.
* cp/pt.c (instantiate_decl): Drop flag_iline_trees code.
* cp/lex.c (cxx_init): Do not set unit-at-a-time.
* java/decl.c: Include cgraph.h
(end_java_method): Remove non-unit-at-a-time code.
(java_mark_decl_local): Likewise; sanity check that we don't touch
finalized nodes.
From-SVN: r138140
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/decl.c | 7 | ||||
-rw-r--r-- | gcc/cp/lex.c | 11 | ||||
-rw-r--r-- | gcc/cp/pt.c | 1 |
4 files changed, 11 insertions, 15 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c9eaf0f..b63655e9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,10 @@ +2008-07-23 Jan Hubicka <jh@suse.cz> + + * cp/decl.c (duplicate_decls): Update comment and unit-at-a-time. + (grogfndecl): Drop flag_inline_trees code. + * cp/pt.c (instantiate_decl): Drop flag_iline_trees code. + * cp/lex.c (cxx_init): Do not set unit-at-a-time. + 2008-07-23 Jason Merrill <jason@redhat.com> Implement defaulted/deleted functions as per N2346 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index d02cab2..1bc83d4 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -1954,8 +1954,9 @@ duplicate_decls (tree newdecl, tree olddecl, bool newdecl_is_friend) } else if (new_defines_function && DECL_INITIAL (olddecl)) { - /* C++ is always in in unit-at-a-time mode, so we never - inline re-defined extern inline functions. */ + /* Never inline re-defined extern inline functions. + FIXME: this could be better handled by keeping both + function as separate declarations. */ DECL_INLINE (newdecl) = 0; DECL_UNINLINABLE (newdecl) = 1; } @@ -6643,7 +6644,7 @@ grokfndecl (tree ctype, /* We inline functions that are explicitly declared inline, or, when the user explicitly asks us to, all functions. */ if (DECL_DECLARED_INLINE_P (decl) - || (flag_inline_trees == 2 && !DECL_INLINE (decl) && funcdef_flag)) + || (!DECL_INLINE (decl) && funcdef_flag)) DECL_INLINE (decl) = 1; DECL_EXTERNAL (decl) = 1; diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c index ee2f2a8..2c169d1 100644 --- a/gcc/cp/lex.c +++ b/gcc/cp/lex.c @@ -247,17 +247,6 @@ cxx_init (void) cxx_init_decl_processing (); - /* The fact that G++ uses COMDAT for many entities (inline - functions, template instantiations, virtual tables, etc.) mean - that it is fundamentally unreliable to try to make decisions - about whether or not to output a particular entity until the end - of the compilation. However, the inliner requires that functions - be provided to the back end if they are to be inlined. - Therefore, we always use unit-at-a-time mode; in that mode, we - can provide entities to the back end and it will decide what to - emit based on what is actually needed. */ - flag_unit_at_a_time = 1; - if (c_common_init () == false) { input_location = saved_loc; diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 60e7528..ef4fa36 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -15222,7 +15222,6 @@ instantiate_decl (tree d, int defer_ok, job, even though we'll not be emitting a copy of this function. */ if (!(TREE_CODE (d) == FUNCTION_DECL - && flag_inline_trees && DECL_DECLARED_INLINE_P (d))) goto out; } |