This is the mail archive of the gcc-patches@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: [sa]: Revert partial def stuff, use fake variables instead


Hello,

> >>>this is basically what I do now.  The problematic case is if you turn 
> >>>a[i]
> >>>into *newiv_1.  Then we have to get tags for the newiv_1 pointer, which
> >>>is problematic (see the discussion following
> >>>http://gcc.gnu.org/ml/gcc-patches/2004-09/msg01897.html for details).
> >>
> >>If you have turned a non-pointer access into a pointer access, then you
> >>*have* to either rerun alias analysis, or create name/type tags with the
> >>approriate aliases (if you know them).
> >
> >which seems terribly wrong to me.  Why should I need to change anything
> >so complicated, when I did not make any change that should affect
> >results of alias analysis?
> 
> But you did.
> You created a new pointer, and a new pointer access.
> That changes the results of alias analysis, because that pointer may point 
> to things, and we need to know what it points to.
> 
> >  It just speaks of a wrong design to me
> >(and since you are now making significant changes to the system, would
> >not it be a nice opportunity to change it? :-)
> 
> When you create pointers, you need to fill in their alias information, one 
> way or the other (ie by calling the alias pass, or by adding a new tag).
> 
> I'm not sure what you think is broken about that.
> When you change the results of an analysis, you need to fix up the 
> results of that analysis, if they are still being used.

why exactly should I need to do this?  Noone cares where the pointer
points to (except perhaps for internals of the alias analysis).  The
only thing that is significant for optimizations is which memory
reference aliases with which.

Zdenek


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