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
This commit is contained in:
Jan Hubicka 2011-10-16 11:02:33 +02:00 committed by Jan Hubicka
parent 7a2a89e864
commit 1bb7e8f8fe
2 changed files with 15 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2011-10-15 Jan Hubicka <jh@suse.cz>
PR target/48668
PR target/50689
* cgraphunit.c (cgraph_expand_function): Expand thunks and alises
after function body.
2011-10-15 Richard Henderson <rth@redhat.com>
* tree-vect-slp.c: Include langhooks.h.

View File

@ -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. */