This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re:
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: dalej at apple dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 10 Dec 01 22:06:50 EST
- Subject: Re:
The improved memory aliasing stuff is interesting, but I see the
following case still isn't done optimally. The store to u.i[0]
is loop invariant, and is not so recognized. Is there enough
info there now to figure this out, do you think?
union {double d; int i[2]; } u;
float s=0.0;
while (count--)
{
u.i[0] = 0x4330;
u.i[1] = *i++;
s += u.d;
}
Perhaps, but it will be hard. What you'd need in this case is a tree
corresponding to were the variable case "ends" and an offset to there.
The first of those isn't hard, the second is trickier.