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;
}