alpha failure on 920810-1
Richard Henderson
rth@cygnus.com
Wed Apr 29 02:20:00 GMT 1998
On Tue, Apr 28, 1998 at 09:30:43PM -0700, Jim Wilson wrote:
> I suspect that there are no currently supported machines for which your
> get_condition change is wrong, but there may be future architectures for
> which is it wrong.
Actually, part of the comment was _defining_ FPmode+VOIDmode to act a
that way. That future architecture might use FPmode+FPmode for that.
Sigh. It wasn't such a good idea, I guess.
> Adding a strategic unspec operation could fix the problem, at the expense
> of uglifying the alpha.md file a bit, and perhaps losing some optimizations.
> It is likely a simpler solution though.
Hum. I suppose
(set (reg:DF 1)
(eq:DF (reg:DF 2) (reg:DF 3)))
(set (reg:DF 4)
(if_then_else:DF (eq (unspec [(reg:DF 1)] 9)
(const_double 0))
(reg:DF 5)
(reg:DF 4)))
would work. It would still allow the sense of the comparisons to be
switched while disallowing their combination. It doesn't strike me
as particularly nice, though.
As for combine, I think it needs fixing for other reasons -- Sparc v9
is failing the same test because of the same type of problem, that is,
the entire function being optimized away. But it is doing it in a way
different from what was happening on Alpha -- I havn't examined it in
detail yet.
So you think changing get_condition and possibly combine is the wrong
approach, eh? Well, I guess I'll figure something out...
r~
More information about the Gcc
mailing list