Commit 70cd23c0 by Martin Liska Committed by Martin Liska

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
parent fe6bb25f
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> 2017-04-07 Richard Biener <rguenther@suse.de>
PR middle-end/80341 PR middle-end/80341
......
...@@ -1363,6 +1363,9 @@ split_function (basic_block return_bb, struct split_point *split_point, ...@@ -1363,6 +1363,9 @@ split_function (basic_block return_bb, struct split_point *split_point,
/* Let's take a time profile for splitted function. */ /* Let's take a time profile for splitted function. */
node->tp_first_run = cur_node->tp_first_run + 1; 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 /* For usual cloning it is enough to clear builtin only when signature
changes. For partial inlining we however can not expect the part changes. For partial inlining we however can not expect the part
of builtin implementation to have same semantic as the whole. */ of builtin implementation to have same semantic as the whole. */
......
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> 2017-04-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
* gcc.dg/tree-ssa/pr79800.c: Require c99_runtime. * gcc.dg/tree-ssa/pr79800.c: Require c99_runtime.
......
// 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; }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment