X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=OPTIMIZATIONS;h=7c51f473ac7e0301e123fa41db6094598db835d1;hb=4ed3f0d08c3a57a6762018d9622f253ab9d0f2b6;hp=51fcb32f0e2a426469ae07f97796e3b2d1685a19;hpb=51c5280a4b41f8c51d434643cde3e18af4113473;p=sbcl.git diff --git a/OPTIMIZATIONS b/OPTIMIZATIONS index 51fcb32..7c51f47 100644 --- a/OPTIMIZATIONS +++ b/OPTIMIZATIONS @@ -154,5 +154,18 @@ 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)))) --------------------------------------------------------------------------------