https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100314
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
However i is also dead at dse time:
void d (int m)
{
int k;
int * l[5];
int * * * i[1];
int * * h[30];
int b.1_11;
int _12;
int g.2_13;
<bb 2> :
MEM <char[232]> [(int * *[30] *)&h + 8B] = {};
h[0] = &c;
i[0] = &h[3];
if (m_6(D) != 0)
goto <bb 3>; [INV]
else
goto <bb 4>; [INV]
<bb 3> :
foo ();
<bb 4> :
l[0] = &k;
l[1] = &k;
l[2] = &k;
l[3] = &k;
l[4] = &k;
goto <bb 6>; [100.00%]
<bb 5> :
j = &l[0];
b.1_11 = b;
_12 = b.1_11 + 1;
b = _12;
<bb 6> :
g.2_13 = g;
if (g.2_13 != 0)
goto <bb 5>; [89.00%]
else
goto <bb 7>; [11.00%]
<bb 7> :
k ={v} {CLOBBER};
l ={v} {CLOBBER};
h ={v} {CLOBBER};
i ={v} {CLOBBER};
return;
}
Not sure why DSE is not optimizing this out.
