X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=OPTIMIZATIONS;h=6eed38079e71691fd84c2691b3d1d71a851e7f55;hb=3a618201c9f2370bb8784217a866d000371769e5;hp=51fcb32f0e2a426469ae07f97796e3b2d1685a19;hpb=51c5280a4b41f8c51d434643cde3e18af4113473;p=sbcl.git diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index 51fcb32..6eed380 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -154,5 +154,26 @@ 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)). +better to derive (OR (MEMBER 0.0d0) (DOUBLE-FLOAT (0.0d0))). +-------------------------------------------------------------------------------- +#15 +On the alpha, the system is reluctant to refer directly to a constant bignum, +preferring to load a large constant through a slow sequence of instructions, +then cons up a bignum for it: + +(LAMBDA (A) + (DECLARE (OPTIMIZE (SAFETY 1) (SPEED 3) (DEBUG 1)) + (TYPE (INTEGER -10000 10000) A) + (IGNORABLE A)) + (CASE A + ((89 125 16) (ASH A (MIN 18 -706))) + (T (DPB -3 (BYTE 30 30) -1)))) +-------------------------------------------------------------------------------- +#16 +(do ((i 0 (1+ i))) + ((= i (the (integer 0 100) n))) + ...) + +It is commonly expected for Python to derive (FIXNUMP I). (If ``='' is +replaced with ``>='', Python will do.) --------------------------------------------------------------------------------