This is the mail archive of the
mailing list for the GCC project.
Re: fix opt/13862
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Richard Henderson <rth at redhat dot com>, gcc-patches at gcc dot gnu dot org
- Date: Wed, 3 Mar 2004 23:19:44 +0100
- Subject: Re: fix opt/13862
- References: <20040303185803.GA23684@redhat.com>
> There were lots of duplicates for this bug. Jan worked on one of them,
> and there were comments in that thread:
> > I don't quite follow it. I see that in this case the asm statement is
> > doing ugly way of clobber, so first question is whether we want to allow
> > asm statements as a special case, or we want to allow generic
> > instructions to have mutiple sets with the same destination?
> Yes, I want to treat asms as a special case. The backend should
> certainly not set the same register multiple times in one insn.
> The backend has much more freedom to use match_scratch and clobber
> attached to the rtl pattern.
> > I am still concerned about the fact that many other places looks for
> > sets and blindly trust that if register is an destination of the set, it
> > will contain the value, so I don't really like such instructions lurking
> > around especially when they are easy to avoid.
> Those other places don't ICE. As previously noted, the value stored
> with the multiple sets is indeterminate, and thus the construct is only
> valid if the value is unused. If the user does use the value, they get
> what they deserve -- except for an ICE.
Thanks, coincidentally I was just testing similar patch as promised to
Mark day before yesterday.
Are you sure that it won't get used eventually? For instance gcse and
cse shall have similar logic in them and I wasn't able to find any of