On Fri, Aug 03, 2007 at 03:49:32PM +0100, Dave Korn wrote:
> 
>   Yes, absolutely so, we already know that there are problems there.  For
> references, see the threads "Deep CSE bug!"[*] and "Bogus REG_EQUIV note
> generation"[**] (subject line was wrong, should have been REG_EQUAL all along)
> from June last year, where we got some way into analysing the problem.  I
> /think/ that the presence of REG_RETVAL in this particular case is only
> tangential to the problem; from what I remember of the discussion, this is
> just about Gcc incorrectly handling reg notes when it decomposes
> multi-word-size-mode moves into individual word-sized moves.

   All examples so far have had CONST_DOUBLE in the REG_EQUAL note.

>   Pranav, although there is indeed a bug in the mid-end here, from your point
> of view the simple and effective workaround should be to implement a movdi
> pattern (and movsf and movdf if you don't have them yet: it's an absolute
> requirement to implement movMM for any modes you expect your machine to
> handle) in the backend.

   If you look at the ia16 back end I posted, you'll notice that it only
implements movXX for modes of 16 bits or less and AFAIK does not suffer from
the CSE bug.

-- 
Rask Ingemann Lambertsen

Reply via email to