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


On Tue, 2004-12-21 at 08:02 -0500, Diego Novillo wrote:
> Jeffrey A Law wrote:
> 
> > Those are functionally equivalent.  In a sane world (and our aliasing
> > code is *FAR* from sane) the most we should have to do is tell the
> > aliasing code that we have a new pointer and it points to X.
> > 
> Which is *exactly* what I've been saying.  We were missing the 
> capability of telling that to the aliasing code.  I added that on the 
> cleanup branch.  If you are removing type tags, then we won't have to 
> update those, but you will still need to have glue code to let the 
> optimizers inform the aliasing code of changes.
With the rewrite, it's trivial to handle the changes ivopts makes --
largely because ivopts doesn't change the aliasing information, it
just adds a new pointer to a known location.  Note carefully that
we'll know precisely what the new pointer points-to and that the
unerlying object was already addressable.
> 
> >>This is very basic stuff.  I cannot believe we are having this discussion.
> > 
> > I can certainly believe we are having this discussion since I've
> > basically run into the same problem.
> > 
> You misunderstand.  The discussion I can't believe we were having is 
> whether one needs to update aliasing information of some kind when you 
> introduce new pointers and pointed-to variables.  Whatever data 
> structure you have to handle aliasing will need to be told of new 
> relations you introduce.
Part of the fundamental problem is the way our aliasing code works right
now -- you have to effectively re-run the entire alias analysis pass
after the seemingly trivial actions of ivopts.  

Jeff


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