------- 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 <[EMAIL PROTECTED]> 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