re PR tree-optimization/51362 (ICE: SIGFPE (division by zero) in good_cloning_opportunity_p at ipa-cp.c:2401)
2011-12-13 Martin Jambor <mjambor@suse.cz> PR tree-optimization/51362 * ipa-cp.c (estimate_local_effects): When estimated size of a specialized clone is zero, bump it to one. * testsuite/gcc.dg/ipa/pr51362.c: New test. From-SVN: r182288
This commit is contained in:
parent
9170437b04
commit
0318fc7749
@ -1,3 +1,9 @@
|
|||||||
|
2011-12-13 Martin Jambor <mjambor@suse.cz>
|
||||||
|
|
||||||
|
PR tree-optimization/51362
|
||||||
|
* ipa-cp.c (estimate_local_effects): When estimated size of a
|
||||||
|
specialized clone is zero, bump it to one.
|
||||||
|
|
||||||
2011-12-13 Richard Guenther <rguenther@suse.de>
|
2011-12-13 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR lto/48354
|
PR lto/48354
|
||||||
|
@ -1409,6 +1409,14 @@ estimate_local_effects (struct cgraph_node *node)
|
|||||||
+ devirtualization_time_bonus (node, known_csts, known_binfos)
|
+ devirtualization_time_bonus (node, known_csts, known_binfos)
|
||||||
+ removable_params_cost + emc;
|
+ removable_params_cost + emc;
|
||||||
|
|
||||||
|
gcc_checking_assert (size >=0);
|
||||||
|
/* The inliner-heuristics based estimates may think that in certain
|
||||||
|
contexts some functions do not have any size at all but we want
|
||||||
|
all specializations to have at least a tiny cost, not least not to
|
||||||
|
divide by zero. */
|
||||||
|
if (size == 0)
|
||||||
|
size = 1;
|
||||||
|
|
||||||
if (dump_file && (dump_flags & TDF_DETAILS))
|
if (dump_file && (dump_flags & TDF_DETAILS))
|
||||||
{
|
{
|
||||||
fprintf (dump_file, " - estimates for value ");
|
fprintf (dump_file, " - estimates for value ");
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2011-12-13 Martin Jambor <mjambor@suse.cz>
|
||||||
|
|
||||||
|
PR tree-optimization/51362
|
||||||
|
* gcc.dg/ipa/pr51362.c: New test.
|
||||||
|
|
||||||
2011-12-13 Uros Bizjak <ubizjak@gmail.com>
|
2011-12-13 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
PR testsuite/51524
|
PR testsuite/51524
|
||||||
|
22
gcc/testsuite/gcc.dg/ipa/pr51362.c
Normal file
22
gcc/testsuite/gcc.dg/ipa/pr51362.c
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-O -fipa-cp -fipa-cp-clone" } */
|
||||||
|
|
||||||
|
int
|
||||||
|
baz (void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int make_mess;
|
||||||
|
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
int bar (int x, int (*f) (void))
|
||||||
|
{
|
||||||
|
return f ();
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
foo (void)
|
||||||
|
{
|
||||||
|
return bar (1, baz);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user