X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=OPTIMIZATIONS;h=51fcb32f0e2a426469ae07f97796e3b2d1685a19;hb=ba02429b75951fc407be01c44fdcb01ff2908707;hp=fd575d63bbcdd97b552691c1eb9af3afce902c9f;hpb=58084279740fc96c6ffcd14e86dca73b71b7c288;p=sbcl.git diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index fd575d6..51fcb32 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -62,11 +62,6 @@ VOP DATA-VECTOR-SET/SIMPLE-STRING V2!14[EDI] t32[EAX] t30[S2]>t33[CL] * And why two moves? -------------------------------------------------------------------------------- -#5 -(loop repeat 1.5) - -uses generic arithmetic --------------------------------------------------------------------------------- #6 09:49:05 I have found a case in those where suboptimal code is generate with nested loops, it might be moderately easy to fix that @@ -95,21 +90,14 @@ uses generic arithmetic (incf x))))))) (format t "~A~%" x))) -------------------------------------------------------------------------------- -#7 -(defun foo (x) - (declare (optimize speed (debug 0))) - (if (< x 0) x (foo (1- x)))) - -SBCL generates a full call of FOO (but CMUCL does not). --------------------------------------------------------------------------------- #8 (defun foo (d) (declare (optimize (speed 3) (safety 0) (debug 0))) (declare (type (double-float 0d0 1d0) d)) (loop for i fixnum from 1 to 5 - for x1 double-float = (sin d) ;;; !!! - do (loop for j fixnum from 1 to 4 - sum x1 double-float))) + for x1 double-float = (sin d) ;;; !!! + do (loop for j fixnum from 1 to 4 + sum x1 double-float))) Without the marked declaration Python will use boxed representation for X1. @@ -163,3 +151,8 @@ tests lowtag. FAST-+/FIXNUM and similar should accept unboxed arguments in interests of representation selection. Problem: inter-TN dependencies. -------------------------------------------------------------------------------- +#14 +The derived type of (/ (THE (DOUBLE-FLOAT (0D0)) X) (THE (DOUBLE-FLOAT +1D0) Y)) is (DOUBLE-FLOAT 0.0d0). While it might be reasonable, it is +better to derive (DOUBLE-FLOAT (-0.0d0)). +--------------------------------------------------------------------------------