Eliminate the baroque floating-point operators a la !<>=

Denis Koroskin 2korden at gmail.com
Sun May 17 10:19:47 PDT 2009


On Sun, 17 May 2009 21:14:46 +0400, Andrei Alexandrescu <SeeWebsiteForEmail at erdani.org> wrote:

> Hello,
>
>
> I think the floating-point operators:
>
>    a !<>= b
>    a !<> b
>    a <> b
>    a <>= b
>    a !> b
>    a !>= b
>    a !< b
>    a !<= b
>
> are useless. A simple peephole optimization in the compiler can  
> automatically rewrite NaN test followed by regular operations into the  
> operations above, for example:
>
> isNaN(a) || isNan(b) || a >= b
>
> is the same as
>
> a !< b
>
> This is in keeping with what the compiler does when seeing code like:
>
> a = x / y;
> b = x % y;
>
> There's a peephole optimization that groups the / and the % together  
> into an assembler operation that does both. If this is the way to go, we  
> better be congruent and use explicit isNaN tests (that are then  
> optimized) instead of defining eight extra operators.
>
>
> Andrei

Does anyone other than Don uses them at all?
I don't care if they are removed from D.



More information about the Digitalmars-d mailing list