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

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun May 17 10:14:46 PDT 2009


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



More information about the Digitalmars-d mailing list