[Bug tree-optimization/17217] not removing removal of nested structs
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 3 06:13:20 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=17217
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed|2005-01-25 03:37:17 |2021-09-03
Ever confirmed|0 |1
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So where is a better testcase (which is not depedent on how gimplifier works):
int h(int *a);
int f(int i, int j)
{
int t = i;
int t1 = j;
int g()
{
int t11 = t1;
int t2 = h(&t);
return t2 + t11;
}
int t3 = g();
return t3 + t1;
}
---- CUT ---
On the gimple level we get:
_3 = __builtin_dwarf_cfa (0);
FRAME.1.FRAME_BASE.PARENT = _3;
FRAME.1.t = i_5(D);
FRAME.1.t1 = j_7(D);
t2_11 = h (&FRAME.1.t);
_12 = j_7(D) + t2_11;
_9 = FRAME.1.t1;
_10 = _9 + _12;
We should know that FRAME.1 is special in that h can only escape t field of
FRAME.1 and not the other fields of FRAME.1 too.
More information about the Gcc-bugs
mailing list