[Bug tree-optimization/33508] [4.3 Regression] tree struct aliasing goes into a loop marking call clobbers.

rguenther at suse dot de gcc-bugzilla@gcc.gnu.org
Thu Sep 20 15:21:00 GMT 2007



------- Comment #8 from rguenther at suse dot de  2007-09-20 15:20 -------
Subject: Re:  [4.3 Regression] tree struct
 aliasing goes into a loop marking call clobbers.

On Thu, 20 Sep 2007, dberlin at dberlin dot org wrote:

> ------- Comment #7 from dberlin at gcc dot gnu dot org  2007-09-20 15:12 -------
> Subject: Re:  [4.3 Regression] tree struct aliasing goes into a loop marking
> call clobbers.
> 
> On 20 Sep 2007 13:52:11 -0000, ramana dot radhakrishnan at celunite
> dot com <gcc-bugzilla@gcc.gnu.org> wrote:
> >
> >
> > ------- Comment #6 from ramana dot radhakrishnan at celunite dot com  2007-09-20 13:52 -------
> > (In reply to comment #4)
> > > Created an attachment (id=14230)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14230&action=view)
>  --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14230&action=view)
> >  --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14230&action=view) [edit]
> > > patch fixing the problem
> > >
> > > This fixes it.  The idea is to keep track of which parent vars we need to add
> > > all subvars to the call clobbered list in a bitmap and process them after the
> > > first walk.
> 
> 
> I don't have enough context handy in the patch to see if you moved it
> outside the transitive loop, or just the initial loop.
> You can move it outside the initial loop, but not the transitive loop,
> because the SFT's may themselves be pointers (obviously for
> non-pointer SFT's, you can certainly ignore them).

I only moved it outside of the innermost EXECUTE_IF_SET_IN_BITMAP loop
on aliases, which should be safe.  I don't completely understand what
you mean with non queuing non-pointers - I suppose queuing non-pointers
in the worklist in mark_aliases_call_clobbered?

Richard.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33508



More information about the Gcc-bugs mailing list