From b183e9e0797c43ac6f8a87f044d385f4cd6dbed9 Mon Sep 17 00:00:00 2001 From: Michael Matz Date: Sun, 17 Apr 2011 01:18:51 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 +++ gcc/ipa-inline-analysis.c | 4 +- gcc/testsuite/ChangeLog | 6 ++ gcc/testsuite/gcc.dg/lto/pr48622_0.c | 93 ++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/lto/pr48622_0.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index da5797e3bd5..4f85a6531a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-04-17 Michael Matz + + 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 * config/i386/sse.md (sseunpackmode): New mode attribute. diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 6ab3e4733f7..c225778e1ca 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 97613c6b29b..ac7833b5953 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-04-17 Michael Matz + + PR tree-optimization/48622 + PR lto/48645 + * gcc.dg/lto/pr48622_0.c: New test. + 2011-04-16 Uros Bizjak * gcc.target/i386/avx256-unaligned-load-1.c: Update scan patterns. diff --git a/gcc/testsuite/gcc.dg/lto/pr48622_0.c b/gcc/testsuite/gcc.dg/lto/pr48622_0.c new file mode 100644 index 00000000000..ffb5f62d6a0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/lto/pr48622_0.c @@ -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); +} + -- 2.30.2