re PR tree-optimization/48622 (ICE: in estimate_size_after_inlining, at ipa-inline-analysis.c:425 with -flto -finline-small-functions -fno-early-inlining)

PR tree-optimization/48622
	PR lto/48645
	* ipa-inline-analysis.c (inline_read_summary): Read size/time
	in same order as they're written.

testsuite/
	* gcc.dg/lto/pr48622_0.c: New test.

From-SVN: r172603
This commit is contained in:
Michael Matz 2011-04-17 01:18:51 +00:00 committed by Michael Matz
parent e27f2b5858
commit b183e9e079
4 changed files with 108 additions and 2 deletions

View file

@ -1,3 +1,10 @@
2011-04-17 Michael Matz <matz@suse.de>
PR tree-optimization/48622
PR lto/48645
* ipa-inline-analysis.c (inline_read_summary): Read size/time
in same order as they're written.
2011-04-16 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (sseunpackmode): New mode attribute.

View file

@ -612,10 +612,10 @@ inline_read_summary (void)
info->estimated_stack_size
= info->estimated_self_stack_size = lto_input_uleb128 (ib);
info->time = info->self_time = lto_input_uleb128 (ib);
info->time_inlining_benefit = lto_input_uleb128 (ib);
info->size = info->self_size = lto_input_uleb128 (ib);
info->size_inlining_benefit = lto_input_uleb128 (ib);
info->time = info->self_time = lto_input_uleb128 (ib);
info->time_inlining_benefit = lto_input_uleb128 (ib);
info->estimated_growth = INT_MIN;
bp = lto_input_bitpack (ib);

View file

@ -1,3 +1,9 @@
2011-04-17 Michael Matz <matz@suse.de>
PR tree-optimization/48622
PR lto/48645
* gcc.dg/lto/pr48622_0.c: New test.
2011-04-16 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/avx256-unaligned-load-1.c: Update scan patterns.

View file

@ -0,0 +1,93 @@
/* { dg-lto-do link } */
/* { dg-lto-options {{-O -flto -finline-small-functions -fno-early-inlining}} } */
void abort(void);
void exit(int);
typedef unsigned int u8 __attribute__ ((mode (QI)));
u8
ashift_qi_0 (u8 n)
{
}
u8
ashift_qi_2 (u8 n)
{
}
u8
ashift_qi_3 (u8 n)
{
}
u8
ashift_qi_4 (u8 n)
{
}
u8
ashift_qi_5 (u8 n)
{
}
u8
ashift_qi_6 (u8 n)
{
}
u8
ashift_qi_7 (u8 n)
{
}
u8
lshiftrt_qi_0 (u8 n)
{
}
u8
lshiftrt_qi_4 (u8 n)
{
}
u8
lshiftrt_qi_5 (u8 n)
{
}
u8
lshiftrt_qi_7 (u8 n)
{
}
int
main ()
{
if (ashift_qi_0 (0xff) != (u8) ((u8) 0xff << 0))
abort ();
if (ashift_qi_1 (0xff) != (u8) ((u8) 0xff << 1))
abort ();
if (ashift_qi_2 (0xff) != (u8) ((u8) 0xff << 2))
abort ();
if (ashift_qi_3 (0xff) != (u8) ((u8) 0xff << 3))
abort ();
if (ashift_qi_4 (0xff) != (u8) ((u8) 0xff << 4))
abort ();
if (ashift_qi_5 (0xff) != (u8) ((u8) 0xff << 5))
abort ();
if (ashift_qi_6 (0xff) != (u8) ((u8) 0xff << 6))
abort ();
if (ashift_qi_7 (0xff) != (u8) ((u8) 0xff << 7))
abort ();
if (lshiftrt_qi_0 (0xff) != (u8) ((u8) 0xff >> 0))
abort ();
if (lshiftrt_qi_4 (0xff) != (u8) ((u8) 0xff >> 4))
abort ();
if (lshiftrt_qi_5 (0xff) != (u8) ((u8) 0xff >> 5))
abort ();
if (lshiftrt_qi_7 (0xff) != (u8) ((u8) 0xff >> 7))
abort ();
exit (0);
}