Update of /cvsroot/sbcl/sbcl/src/compiler
In directory sc8-pr-cvs1:/tmp/cvs-serv28592/src/compiler
Modified Files:
array-tran.lisp fndb.lisp knownfun.lisp
Log Message:
0.8.2.14:
* DERIVE-TYPE optimizer for AREF does not try to put a type
assertion on its result;
* fix type declaration for INTEGER-DECODE-FLOAT;
* cross-compiler vertions of MAKE-{SINGLE,DOUBLE}-FLOAT now
work with denormalized numbers;
... since this change causes bootstrapping problems under
previous versions of SBCL, replace a reference to
LEAST-POSITIVE-DOUBLE-FLOAT with a code, constructing this
number.
Index: array-tran.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/array-tran.lisp,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- array-tran.lisp 18 Jul 2003 05:47:23 -0000 1.57
+++ array-tran.lisp 3 Aug 2003 11:32:29 -0000 1.58
@@ -91,11 +91,6 @@
(defoptimizer (aref derive-type) ((array &rest indices) node)
(assert-array-rank array (length indices))
- ;; If the node continuation has a single use then assert its type.
- (let ((cont (node-cont node)))
- (when (= (length (find-uses cont)) 1)
- (assert-continuation-type cont (extract-upgraded-element-type array)
- (lexenv-policy (node-lexenv node)))))
(extract-upgraded-element-type array))
(defoptimizer (%aset derive-type) ((array &rest stuff))
Index: fndb.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/fndb.lisp,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -d -r1.76 -r1.77
--- fndb.lisp 27 Jul 2003 13:52:35 -0000 1.76
+++ fndb.lisp 3 Aug 2003 11:32:29 -0000 1.77
@@ -342,7 +342,7 @@
(defknown decode-float (float) (values float float-exponent float)
(movable foldable flushable explicit-check))
(defknown scale-float (float float-exponent) float
- (movable foldable flushable explicit-check))
+ (movable foldable unsafely-flushable explicit-check))
(defknown float-radix (float) float-radix
(movable foldable flushable explicit-check))
(defknown float-sign (float &optional float) float
@@ -350,7 +350,7 @@
(defknown (float-digits float-precision) (float) float-digits
(movable foldable flushable explicit-check))
(defknown integer-decode-float (float)
- (values integer float-exponent (member -1 1))
+ (values integer float-int-exponent (member -1 1))
(movable foldable flushable explicit-check))
(defknown complex (real &optional real) number
Index: knownfun.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/knownfun.lisp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- knownfun.lisp 27 Jul 2003 15:24:12 -0000 1.31
+++ knownfun.lisp 3 Aug 2003 11:32:29 -0000 1.32
@@ -63,6 +63,9 @@
unsafely-flushable
;; may be moved with impunity. Has no side effects except possibly
;; consing, and is affected only by its arguments.
+ ;;
+ ;; Since it is not used now, its distribution in fndb.lisp is
+ ;; mere random; use with caution.
movable
;; The function is a true predicate likely to be open-coded. Convert
;; any non-conditional uses into (IF <pred> T NIL). Not usually
|