This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/33508] [4.3 Regression] tree struct aliasing goes into a loop marking call clobbers.
- From: "dberlin at dberlin dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Sep 2007 15:12:23 -0000
- Subject: [Bug tree-optimization/33508] [4.3 Regression] tree struct aliasing goes into a loop marking call clobbers.
- References: <bug-33508-14766@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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) [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).
You could also speed this up dramatically by not queuing non-pointers.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33508