From: Jan Hubicka Date: Sun, 16 Oct 2011 09:02:33 +0000 (+0200) Subject: re PR middle-end/48668 (COMDAT Group signature not emitted in group) X-Git-Tag: releases/gcc-4.7.0~3072 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1bb7e8f8fe35140b62b0d203f04c3d9f1c5ee909;p=thirdparty%2Fgcc.git re PR middle-end/48668 (COMDAT Group signature not emitted in group) PR target/48668 PR target/50689 * cgraphunit.c (cgraph_expand_function): Expand thunks and alises after function body. From-SVN: r180053 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 22e2f7766c37..333460880ce8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-10-15 Jan Hubicka + + PR target/48668 + PR target/50689 + * cgraphunit.c (cgraph_expand_function): Expand thunks and alises + after function body. + 2011-10-15 Richard Henderson * tree-vect-slp.c: Include langhooks.h. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index c75c1300408d..96c910c1051f 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -1798,7 +1798,6 @@ cgraph_expand_function (struct cgraph_node *node) announce_function (decl); node->process = 0; - assemble_thunks_and_aliases (node); gcc_assert (node->lowered); /* Generate RTL for the body of DECL. */ @@ -1808,6 +1807,14 @@ cgraph_expand_function (struct cgraph_node *node) gcc_assert (TREE_ASM_WRITTEN (decl)); current_function_decl = NULL; gcc_assert (!cgraph_preserve_function_body_p (node)); + + /* It would make a lot more sense to output thunks before function body to get more + forward and lest backwarding jumps. This is however would need solving problem + with comdats. See PR48668. Also aliases must come after function itself to + make one pass assemblers, like one on AIX happy. See PR 50689. + FIXME: Perhaps thunks should be move before function IFF they are not in comdat + groups. */ + assemble_thunks_and_aliases (node); cgraph_release_function_body (node); /* Eliminate all call edges. This is important so the GIMPLE_CALL no longer points to the dead function body. */