http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59049

Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu.org,
                   |                            |steven at gcc dot gnu.org

--- Comment #2 from Jorn Wolfgang Rennecke <amylaar at gcc dot gnu.org> ---
The regression shows up at r204194 :
http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=204194

The 104t.copyprop6 looks indeed more cumbersome for r204194 than for r204193:

--- ../204193/strlen-2.i.104t.copyprop6 2013-11-08 16:03:58.272739028 +0000
+++ ./strlen-2.i.104t.copyprop6 2013-11-08 16:04:18.355773658 +0000
@@ -27,11 +27,15 @@

 main_test ()
 {
+  char[4] * iftmp.2_1;
+  const char * iftmp.6_2;
   const char * iftmp.12_3;
   long unsigned int g.3_7;
   long unsigned int g.5_8;
+  long unsigned int _10;
   long unsigned int h.7_11;
   long unsigned int h.9_12;
+  long unsigned int _14;
   long unsigned int i.10_15;
   long unsigned int i.11_16;
   long unsigned int j.13_19;
@@ -44,24 +48,31 @@
   long unsigned int _28;
   long unsigned int k.14_29;
   long unsigned int l.20_33;
+  _Bool _34;
+  _Bool _35;
+  _Bool _36;
+  _Bool _37;
+  _Bool _38;
+  _Bool _39;

   <bb 2>:
   g.3_7 = g;
   g.5_8 = g.3_7 + 1;
   g = g.5_8;
-  if (g.5_8 != 1)
+  if (g.3_7 != 0)
     goto <bb 3>;
   else
     goto <bb 4>;

   <bb 3>:
-  abort ();

   <bb 4>:
-  h.7_11 = h;
-  h.9_12 = h.7_11 + 1;
-  h = h.9_12;
-  if (h.9_12 != 1)
+  # iftmp.2_1 = PHI <"foo"(3), "bar"(2)>
+  _10 = strlen (iftmp.2_1);
+  _34 = g.5_8 != 1;
+  _35 = _10 != 3;
+  _36 = _35 | _34;
+  if (_36 != 0)
     goto <bb 5>;
   else
     goto <bb 6>;
@@ -70,68 +81,93 @@
   abort ();

   <bb 6>:
+  h.7_11 = h;
+  h.9_12 = h.7_11 + 1;
+  h = h.9_12;
+  if (h.7_11 != 0)
+    goto <bb 7>;
+  else
+    goto <bb 8>;
+
+  <bb 7>:
+
+  <bb 8>:
+  # iftmp.6_2 = PHI <&MEM[(void *)"xfoo" + 1B](7), "bar"(6)>
+  _14 = strlen (iftmp.6_2);
+  _37 = h.9_12 != 1;
+  _38 = _14 != 3;
+  _39 = _38 | _37;
+  if (_39 != 0)
+    goto <bb 9>;
+  else
+    goto <bb 10>;
+
+  <bb 9>:
+  abort ();
+
+  <bb 10>:
   i.10_15 = i;
   i.11_16 = i.10_15 + 1;
   i = i.11_16;
   if (i.11_16 != 1)
-    goto <bb 7>;
+    goto <bb 11>;
   else
-    goto <bb 8>;
+    goto <bb 12>;

-  <bb 7>:
+  <bb 11>:
   abort ();

-  <bb 8>:
+  <bb 12>:
   inside_main = 0;
   j.13_19 = j;
   if (j.13_19 != 0)
-    goto <bb 9>;
+    goto <bb 13>;
   else
-    goto <bb 10>;
+    goto <bb 14>;

-  <bb 9>:
+  <bb 13>:
   k.14_20 = k;
   k.16_21 = k.14_20 + 1;
   k = k.16_21;
   iftmp.12_23 = "foo" + k.14_20;
-  goto <bb 11>;
+  goto <bb 15>;

-  <bb 10>:
+  <bb 14>:
   k.14_24 = k;
   k.18_25 = k.14_24 + 1;
   k = k.18_25;
   iftmp.12_27 = "bar" + k.14_24;

-  <bb 11>:
-  # iftmp.12_3 = PHI <iftmp.12_23(9), iftmp.12_27(10)>
+  <bb 15>:
+  # iftmp.12_3 = PHI <iftmp.12_23(13), iftmp.12_27(14)>
   _28 = strlen (iftmp.12_3);
   if (_28 != 3)
-    goto <bb 13>;
+    goto <bb 17>;
   else
-    goto <bb 12>;
+    goto <bb 16>;

-  <bb 12>:
+  <bb 16>:
   k.14_29 = k;
   if (k.14_29 != 1)
-    goto <bb 13>;
+    goto <bb 17>;
   else
-    goto <bb 14>;
+    goto <bb 18>;

-  <bb 13>:
+  <bb 17>:
   abort ();

-  <bb 14>:
+  <bb 18>:
   foo ();
   l.20_33 = l;
   if (l.20_33 != 1)
-    goto <bb 15>;
+    goto <bb 19>;
   else
-    goto <bb 16>;
+    goto <bb 20>;

-  <bb 15>:
+  <bb 19>:
   abort ();

-  <bb 16>:
+  <bb 20>:
   return;

 }

Reply via email to