Add function part to a same comdat group (PR ipa/80212).

2017-04-07  Martin Liska  <mliska@suse.cz>

	PR ipa/80212
	* g++.dg/ipa/pr80212.C: New test.
2017-04-07  Martin Liska  <mliska@suse.cz>

	PR ipa/80212
	* ipa-split.c (split_function): Add function part to a same comdat
	group.

From-SVN: r246759
This commit is contained in:
Martin Liska 2017-04-07 12:36:21 +02:00 committed by Martin Liska
parent fe6bb25f9e
commit 70cd23c019
4 changed files with 32 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2017-04-07 Martin Liska <mliska@suse.cz>
PR ipa/80212
* ipa-split.c (split_function): Add function part to a same comdat
group.
2017-04-07 Richard Biener <rguenther@suse.de>
PR middle-end/80341

View File

@ -1363,6 +1363,9 @@ split_function (basic_block return_bb, struct split_point *split_point,
/* Let's take a time profile for splitted function. */
node->tp_first_run = cur_node->tp_first_run + 1;
if (cur_node->same_comdat_group)
node->add_to_same_comdat_group (cur_node);
/* For usual cloning it is enough to clear builtin only when signature
changes. For partial inlining we however can not expect the part
of builtin implementation to have same semantic as the whole. */

View File

@ -1,3 +1,8 @@
2017-04-07 Martin Liska <mliska@suse.cz>
PR ipa/80212
* g++.dg/ipa/pr80212.C: New test.
2017-04-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.dg/tree-ssa/pr79800.c: Require c99_runtime.

View File

@ -0,0 +1,18 @@
// PR ipa/80212
// { dg-options "-O2 --param partial-inlining-entry-probability=403796683 -fno-early-inlining" }
struct b
{
virtual b *c () const;
};
struct d : virtual b
{
};
struct e : d
{
e *
c () const
{
}
};
main () { e a; }