This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: ICE on valid code, cse related
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