X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=OPTIMIZATIONS;h=6eed38079e71691fd84c2691b3d1d71a851e7f55;hb=3a618201c9f2370bb8784217a866d000371769e5;hp=3b6ebe1af9ee460cc7237c6d6e2bab75cd73799f;hpb=d6cacf136631916da0db8bbe32554ca499e17589;p=sbcl.git diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index 3b6ebe1..6eed380 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -151,3 +151,29 @@ 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 (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.) +--------------------------------------------------------------------------------