1.0.30.38: faster TRUNCATE on floats
* Specialized %UNARY-TRUNCATE/SINGLE-FLOAT and
%UNARY-TRUNCATE/DOUBLE-FLOAT.
* Explicit coercions to appropriate float types in the TRUNCATE
transforms. This gets rid of generic arithmetic in the general case
(Python is reluctant to insert explicit integer-tofloat coercions
for integers of unknown range due to precision issues.)
* Since COERCE (and %SINGLE-FLOAT and %DOUBLE-FLOAT) are not
flushable, take core not to generate leftover code in the TRUNCATE
transform when the result lvar has a single-value type.
* Rename %UNARY-TRUNCATE float VOPs, so that transforming to a
specialized floating point version doesn't make use unable to
implement it directly as a VOP when the range of the float is
sufficiently constrained.
13 files changed: