re PR tree-optimization/48622 (ICE: in estimate_size_after_inlining, at ipa-inline...
authorMichael Matz <matz@suse.de>
Sun, 17 Apr 2011 01:18:51 +0000 (01:18 +0000)
committerMichael Matz <matz@gcc.gnu.org>
Sun, 17 Apr 2011 01:18:51 +0000 (01:18 +0000)
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
gcc/ipa-inline-analysis.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/lto/pr48622_0.c [new file with mode: 0644]

index da5797e3bd5b03553c598864c3a722f81a202a35..4f85a6531a2213e2ac64e5d287c40f951bdda645 100644 (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.
index 6ab3e4733f73fbdc86bf6ac05c7ae2481fec1a76..c225778e1ca109513826a9be82031b02f3535299 100644 (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);
index 97613c6b29b7c82b40d7ee22ee06ba11120a6efb..ac7833b5953571e1b81e95f46029654d7b9d2dc1 100644 (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.
diff --git a/gcc/testsuite/gcc.dg/lto/pr48622_0.c b/gcc/testsuite/gcc.dg/lto/pr48622_0.c
new file mode 100644 (file)
index 0000000..ffb5f62
--- /dev/null
@@ -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);
+}
+