This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/6162: gcc 3.0.4: certain i386 asm reloader ice
- From: Kevin Ryde <user42 at zip dot com dot au>
- To: Michael Matz <matz at suse dot de>
- Cc: Nathanael Nerode <neroden at twcny dot rr dot com>, <gcc-gnats at gcc dot gnu dot org>, <gcc-prs at gcc dot gnu dot org>, <gcc-bugs at gcc dot gnu dot org>, <gcc at gcc dot gnu dot org>, Torbjörn Granlund <tege at swox dot com>
- Date: Thu, 31 Oct 2002 08:20:03 +1000
- Subject: Re: optimization/6162: gcc 3.0.4: certain i386 asm reloader ice
- References: <Pine.LNX.4.33.0210302300560.20702-100000@wotan.suse.de>
Michael Matz <matz@suse.de> writes:
>
> Well, to find it is quite easy. reload is inherently incapable of
> handling more than one commutative operand, but there are two of them in
> the asm. If you are unlucky both of them would need to be swapped to make
> the insn valid, and this is what breaks reload, as it only can swap the
> last pair. I don't know why this constraint isn't documented, but anyway,
> that's the reason.
The stuff in question is from longlong.h actually (shared by GMP and
GCC). All the add_ssaaaa's (or it looks like all) have two
commutatives.