This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]