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: fix opt/13862


> 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
it.

Honza


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