Bring OPTIMIZATIONS up to date
authorPaul Khuong <pvk@pvk.ca>
Wed, 31 Aug 2011 13:05:16 +0000 (09:05 -0400)
committerPaul Khuong <pvk@pvk.ca>
Wed, 31 Aug 2011 13:05:16 +0000 (09:05 -0400)
 Some of these things were implemented months or a few years ago.

 Also, fix the header for NEWS.

NEWS
OPTIMIZATIONS

diff --git a/NEWS b/NEWS
index 60e5f9c..fcd1815 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
 ;;;; -*- coding: utf-8; fill-column: 78 -*-
-changes relative to sbcl-1.0.50:
+changes relative to sbcl-1.0.51:
   * enhancement: ASDF has been updated to version 2.017.
   * enhancement: the --core command line option now accepts binaries with
     an embedded core.
index 81ab61d..42119ac 100644 (file)
@@ -157,11 +157,6 @@ sbcl-0.8.12.30, this affects at least DUMP-OBJECT through
 COMPOUND-OBJECT-P, and (LABELS MAYBE-EMIT-MAKE-LOAD-FORMS GROVEL)
 through TYPEP UNBOXED-ARRAY, within the compiler itself.
 --------------------------------------------------------------------------------
-#18
-(lambda (x) (declare (null x)) (sxhash x)) goes through SYMBOL-HASH
-rather than either constant-folding or manipulating NIL-VALUE or
-NULL-TN directly.
---------------------------------------------------------------------------------
 #20
 (defun-with-dx foo (x)
   (flet ((make (x)
@@ -179,8 +174,7 @@ Result of MAKE is not stack allocated.
 IR2 does not perform unused code flushing.
 --------------------------------------------------------------------------------
 #24
-a. Iterations on &REST lists, returning them as VALUES could be
-   rewritten with &MORE vectors.
+a. Iterations on &REST lists could be rewritten with &MORE vectors.
 b. Implement local unknown-values mv-call (useful for fast type checking).
 --------------------------------------------------------------------------------
 #26
@@ -247,21 +241,6 @@ vm-support-routine COMBINATION-IMPLEMENTATION-STYLE and its use in
 src/compiler/ir1opt.lisp, IR1-OPTIMIZE-COMBINATION.  The above
 optimizations are left as an exercise for the reader.)
 --------------------------------------------------------------------------------
-#30
-(defun foo (x y)
-  (< x y))
-
-FOO's IR1 representation is roughly:
-
-(defun foo (x y)
-  (if (< x y)
-      T
-      NIL))
-
-However, if a full call is generated for < (and similarly for other
-predicate functions), then the IF is unnecessary, since the return value
-of (< x y) is already T or NIL.
---------------------------------------------------------------------------------
 #31
 The typecheck generated for a declaration like (integer 0 45) on x86 looks
 like: