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: [PATCH][RFC] Make restrict work properly on the tree level


On Thu, 8 May 2008, Richard Guenther wrote:

> On Mon, 5 May 2008, Daniel Berlin wrote:
> 
> > On Mon, May 5, 2008 at 1:53 PM, Daniel Berlin <dberlin@dberlin.org> wrote:
> > > On Mon, May 5, 2008 at 10:29 AM, Richard Guenther <rguenther@suse.de> wrote:
> > >  >
> > >  >  This is a first (quick) shot to make restrict work properly with
> > >  >  tree level aliasing.  Now that we got oracle queries in place we can
> > >  >  do the right thing with the "two pointers based on different restrict
> > >  >  pointers" thing by simply using PTA and propagating "bases" at the
> > >  >  time we propagate DECL_NO_TBAA_P information.
> > >  >
> > >  >  The setup for parameters is the easiest, but other cases could be
> > >  >  handled the same.  One problem I faced is that the points-to solver
> > >  >  quickly collapses pointers if they have the same points-to sets - which
> > >  >  obviously makes the "based on" analysis fail.  Thus the "hack" in
> > >  >  label_visit to avoid this.
> > >
> > >  Don't do this in label visit, it was built to work without any
> > >  knowledge of variable infos, only working on the graph.
> > 
> > 
> > Also, preventing label_visit from doing it's job this way will cause
> > it to miss other non-related equivalences.
> > Again, better to take the results and just skip unification of
> > variables with unrelated restrict_base_id.
> 
> Ideas? ;)

It seems the label_visit fixing doesn't work for more complex problems
either.  So I'm going to leave the PTA solver alone and do the
propagating separately.  Do you have your patch available somewhere?

Thanks,
Richard.


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