]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/semantics.c
cgraph.c (same_body_alias_1): Break out of
authorJan Hubicka <jh@suse.cz>
Sun, 29 Nov 2009 10:32:08 +0000 (11:32 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 29 Nov 2009 10:32:08 +0000 (10:32 +0000)
commit6744a6abc335d55f98ba226f4ff169a55cf3fb94
tree2260e6f71c9022e13476588b282bc487939fa1e4
parente55690913ecef32cb80d5f169a9aa50fd5ae4a98
cgraph.c (same_body_alias_1): Break out of

* cgraph.c (same_body_alias_1): Break out of
(same_body_alias): ... here; remove comdat check; it is handled
in cp already.
(cgraph_add_thunk): New.
(dump_cgraph_node): Dump aliases and thunks.
* cgraph.h (cgraph_thunk_info): New structure.
(struct cgraph_node): Add thunk info.
(cgraph_add_thunk): New.
* cgraphunit.c (cgraph_emit_thunks): Remove.
(cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
(assemble_thunk): New function.
(cgraph_expand_function): Handle thunks.
(thunk_adjust): New.
(init_lowered_empty_function): New.
* optimize.c (maybe_clone_body): Emit thunks associated to alias.
* Make-lang.in (method.o): Add dependency on gimple.h.
* method.c: Include gimple.h
(make_alias_for_thunk): Use same body alias instead of assemble_alias.
(use_thunk): Drop codegen; use cgraph_add_thunk; gimplify
generic thunks.
* semantics.c (expand_or_defer_fn): Emit associated thunks.
* cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
* lto-cgraph.c (lto_output_node): Stream thunk info.
(input_node): Likewise.
* langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
* langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
(LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
* i386.c (x86_output_mi_thunk): Make output prettier.

From-SVN: r154736
16 files changed:
gcc/ChangeLog
gcc/cgraph.c
gcc/cgraph.h
gcc/cgraphunit.c
gcc/config/i386/i386.c
gcc/cp/ChangeLog
gcc/cp/Make-lang.in
gcc/cp/cp-objcp-common.h
gcc/cp/method.c
gcc/cp/optimize.c
gcc/cp/semantics.c
gcc/ira.c
gcc/langhooks-def.h
gcc/langhooks.h
gcc/lto-cgraph.c
gcc/tree-inline.c