diff options
author | Michael Matz <matz@suse.de> | 2011-04-17 01:18:51 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2011-04-17 01:18:51 +0000 |
commit | b183e9e0797c43ac6f8a87f044d385f4cd6dbed9 (patch) | |
tree | 17763c3b4220a26d0ae8cfa012b146a94f7fbee0 /gcc | |
parent | e27f2b58589bc09eafbbbb43fc0c5eae28537de0 (diff) | |
download | gcc-b183e9e0797c43ac6f8a87f044d385f4cd6dbed9.zip gcc-b183e9e0797c43ac6f8a87f044d385f4cd6dbed9.tar.gz gcc-b183e9e0797c43ac6f8a87f044d385f4cd6dbed9.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ipa-inline-analysis.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/lto/pr48622_0.c | 93 |
4 files changed, 108 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index da5797e..4f85a65 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 6ab3e47..c225778 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 97613c6..ac7833b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. 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 0000000..ffb5f62 --- /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); +} + |